2012-02-28 6 views
1

応答が5秒以上かかる場合、JQuery JDialogウィンドウを開く方法。5秒後にJQuery JDialogを表示して自動クローズ

以下は私が応答(AJAX)を得れば応答時間(AJAX)が近い5秒以上と自動を取る場合は、上記のダイアログを表示したい私のコード

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

です。

助けがあれば助かります。

おかげ

+0

私はあなたが –

+0

あなたはAJAXリクエストの応答時間を意味し、それを行うにはJSにタイマーを設定する必要があると思いますか? –

+0

@DidierGhys:はい。 ajaxリクエストの応答時間 – pal

答えて

3

あなたは5秒後にダイアログが開きますタイマーを起動するためにsetTimeout()を使用することができます。このメソッドは、作成するタイマーへの参照を返します。要求を開始する前に実行される "beforeSend"コールバックでこれを行います。

完全コールバック(または成功+エラーコールバック)で、clearTimeout()でタイマーをクリアし、ダイアログを閉じます。

var timer; 

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