2012-02-28 112 views
1

如果響應時間超過5秒,如何打開JQuery JDialog窗口。5秒後顯示JQuery JDialog並自動關閉

下面是我的代碼

$("#Dialog").dialog(
     { 
      autoOpen: false, 
      modal: true, 
      height: 175, 
      position: 'center', 
      bgiframe: true, 
      display: 'visible', 
      width: 400 
     }); 

我想說明上面的對話框,如果響應時間(AJAX)的時間超過5秒,自動關閉,一旦我得到的迴應(AJAX)。

任何幫助將有所幫助。

感謝

+0

我認爲你需要在JS中設置一個Timer來做到 – 2012-02-28 10:42:02

+0

你是指ajax請求的響應時間? – 2012-02-28 10:43:34

+0

@DidierGhys:是的。阿賈克斯請求的響應時間 – pal 2012-02-28 10:44:53

回答

3

您可以使用setTimeout()啓動一個定時器,將在5秒後打開的對話框。此方法返回對其創建的計時器的引用。在請求開始之前執行的「beforeSend」回調中執行此操作。

在完成回調(或成功+錯誤回調)中,用clearTimeout()清除計時器並關閉對話框。

var timer; 

$.ajax({ 
    ... 
    beforeSend: function() { 
     timer = setTimeout(function() { 
      $("#Dialog").dialog('open'); 
     }, 5000); 
    }, 
    complete: function() { 
     clearTimeout(timer); 
     $("#Dialog").dialog('close'); 
    } 
});