2010-02-23 6 views
2

jquery UI 대화 상자를 사용하여 클라이언트가 일부 데이터를 처리하는 동안 사용자의 요청이 진행 중임을 알립니다. 그러나 여러분 모두 아시다시피, 그것은 파이어 폭스보다 프로세스가 더 오래 걸립니다. 진행 대화 상자가 최소한의 최소 시간 동안 표시되도록하는 가장 좋은 패턴은 무엇인가요? 파이어 폭스에서 단지 깜박 거리지 않고, 타이머가 만료 되더라도 브라우저가 끝날 때까지 대화 상자가 그대로 유지됩니다. 처리?최소 시간 동안 jquery 진행 대화 상자가 표시되는지 확인

답변

3

몇 가지 방법으로 처리 할 수 ​​있습니다.하지만 모두 기본적으로 대기열을 파생시킵니다. 예를 들어

:에 관계없이

$("#startLink").click(function(){ 
    var $dialog = $(".dialog"); 
    $dialog.dialog({ 
     open: function(e, ui){ 
      // delay any close operations for at least 2 seconds 
      $dialog.queue(function(){ 
       setTimeout(function(){ 
        $dialog.dequeue(); 
       }, 2000); 
      }); 
      // if you're using jQuery 1.4, you can do this instead 
      // $dialog.delay(2000); 
     } 
    }); 

    // do some processing here 

    $dialog.queue(function(){ 
     $dialog.dialog('close'); 
     $dialog.dequeue(); 
    }); 
}); 

, 당신이 정말로 대기열 시스템에 내장 사용하여 지정된 지연 시간을 보장한다하고있는 모든. 대기열 시스템을 사용하지 않고도이 작업을 수행 할 수 있지만 그 또 다른 예입니다.

+0

굉장하고 매력적입니다. 고마워. – Ryan

+0

좋은 답변 @BBonifield! 모범 사례도 잘 사용하십시오! –