1

私の ASPX ページでは、タイムアウトが 5 秒の Ajax 呼び出しを含む JavaScript 関数を呼び出します。

最初にインターネット接続をオフにしてこの関数を呼び出そうとすると、タイムアウトが適切に機能します。しかし、この関数を 2 回目に呼び出すと、Ajax 呼び出しは、タイムアウトと後続のエラー関数を待たずに直接成功関数を呼び出します。

これがajax呼び出しです

$.ajax({
     type: "POST",
     url: pageUrl + "/SubmitAnsGetNewQue",
     data: jsonParamsForSbmt,
     timeout: 5000,
     contentType: "application/json; charset=utf-8",
     dataType: "json",
     async: true,
     success: SetNextQueSet,
     error: OnErrorCall
});
4

1 に答える 1

3

timeoutこの文脈であなたが考えるものではありません.ajaxリクエストが返されるのをjQueryが待つミリ秒単位の時間です。

サーバーが応答するまでに 5 秒以上かかった場合、コールバックは起動しません。

タイムアウト

リクエストのタイムアウト (ミリ秒単位) を設定します。これは、$.ajaxSetup() で設定されたグローバル タイムアウトをオーバーライドします。タイムアウト期間は、$.ajax 呼び出しが行われた時点から始まります。他のいくつかのリクエストが進行中で、ブラウザに利用可能な接続がない場合、リクエストが送信される前にタイムアウトになる可能性があります。jQuery 1.4.x 以下では、リクエストがタイムアウトした場合、XMLHttpRequest オブジェクトは無効な状態になります。オブジェクト メンバーにアクセスすると、例外がスローされる場合があります。Firefox 3.0+ のみで、スクリプトと JSONP リクエストはタイムアウトでキャンセルできません。タイムアウト期間後に到着した場合でも、スクリプトは実行されます。

ドキュメント

于 2013-01-11T12:36:20.863 に答える