0

$.ajax()from メソッドを使用JQueryしていくつかの POST リクエストを実行し、そのerror: function(jqXHR, textStatus, errorThrown) { ... }コールバック内で、タイムアウトを伴う単純な再試行メカニズムを実装したいと考えています。

timeout = window.setTimeout(function() {
    $.ajax(myReqOptions);
}, 3000);

myReqOptionsこれを機能させるには、ここで定義するオプション オブジェクトが必要$.ajax()です。次のように、タイムアウトを呼び出す前に一時変数を設定する以外に、このオブジェクトを参照する便利な方法はありますか?

myReqOptions = this;
timeout = window.setTimeout(function() {
    $.ajax(myReqOptions);
}, 3000);

thisここでは、errorコールバックの所有者を参照します。これは、 で定義したオブジェクトです$.ajax()

4

1 に答える 1

1

一時変数は問題ありません。呼び出しを少し短縮するには、bind関数メソッドを使用できます。

timeout = window.setTimeout($.ajax.bind($, this), 3000);

または、古いブラウザー (ES5 shim を使用しない) との互換性のために、次のようにし$.proxyます。

timeout = window.setTimeout($, "ajax", this), 3000);
于 2013-05-01T19:02:40.417 に答える