タイムアウト時間を$.get()
に設定する方法はありますか?jQuery.get()でのタイムアウト
私は私のスクリプトは、ロードが(ビジーサーバーまたは何におそらく)いくつかの時間 はどこにでもそれを見つけることができないように取っているという警告を与えたいと...
タイムアウト時間を$.get()
に設定する方法はありますか?jQuery.get()でのタイムアウト
私は私のスクリプトは、ロードが(ビジーサーバーまたは何におそらく)いくつかの時間 はどこにでもそれを見つけることができないように取っているという警告を与えたいと...
だけ$.ajax(...)
を使用します。
.ajaxSetup(...)
を使用することができ、コメントで以下に述べたようにまた
$.ajax({
url: url,
success: function(data){
//...
},
timeout: 1000 //in milliseconds
});
:
$.ajaxSetup({timeout:1000}); //in milliseconds
グローバルに実行したい場合は、次のようにします。$ .ajaxSetup({timeout:1000}); – epignosisx
@epignosisxあまりにも。私はそれを答えに加えます。^_^ – Neal
ベストタイムアウトは何ですか? 2000ms? – ISFO
$.get
は、timeout
オプションを持つ$.ajax
オプションのちょっと便利です。このオプションは、コールバックをキャンセルするまでのスクリプトの待機時間を指定します。
$.ajaxSetup({timeout: 9001})
を使用してグローバルデフォルトを上書きすることができ、引き続き$.get
を使用できます。
リクエストをキャンセルせずにユーザーに警告する場合は、$.ajax
を使用し、タイムアウトを設定し、complete
コールバックでタイムアウトをキャンセルします。
は、ここではいくつかの例スターターコードですが、私はそれのいずれかをテストしていませんが、それはおそらく仕事のビットをプラグインに変えることができます
(function(){
var t, delay;
delay = 1000;
$('.delay-message').ajaxStart(function() {
var $this;
$this = $(this);
t = setTimeout(function() {
$this.trigger('slowajax');
}, delay);
}).ajaxComplete(function() {
if (t) {
clearTimeout(t);
}
});
}());
$('.delay-message').on('slowajax', function() {
$(this).show().delay(2000).fadeOut(1000);
});
$.ajaxSetup({
timeout:2000 // in milliseconds
});
//your get request here
これには.ajax()
を使用してください。結局のところ、.get()
はこれを囲む単なるラッパーです。ここで
function doAjax() {
var $warning = $("#warning").hide(), // Always hide to start with
warningTimeoutId = 0;
warningTimeoutId = window.setTimeout(function() {
$warning.show();
}, 10000); // wait 10s before showing warning
$.ajax({
timeout: 30000, // 30s timeout
complete: function() {
// Prevent the warning message from appearing
window.clearTimeout(warningTimeoutId);
}
... // other config
});
}
は、あなただけのAjaxリクエストがすでに終了していない限り、10秒後に表示されますAjax呼び出しの前にタイムアウトを開始します。あなたのような何かを行うことができます。
特定の遅延の後に関数をトリガしたい、または特定の遅延の後に '$ .get'リクエストをキャンセルしたいということですか?関数を起動するだけの場合は、 'setTimeout'を使うことができます。 – zzzzBov