web-dev-qa-db-ja.com

JQuery ajax呼び出しのデフォルトのタイムアウト値

複製できないというバグレポートを受け取りましたが、ajax-call timeoutが現在の最良の推測です。

それで、jQuery $.ajax()呼び出しのタイムアウトのデフォルト値を見つけようとしています。誰もがアイデアを持っていますか? jQueryドキュメントに見つかりませんでした。

事前に感謝、マーカス

65
Marcus

標準化されたデフォルト値はないようです。デフォルトは0、およびタイムアウトイベントは、ブラウザとネットワークの設定に完全に依存したままになりました。

IEの場合、XMLHTTPRequests here のタイムアウトプロパティがあります。デフォルトはnullで、ネットワークスタックが最初にタイムアウトする可能性が高いと言われます(notでontimeoutイベントを生成します) 。

42
Pekka 웃

余談ですが、同様のバグを診断しようとすると、jqueryのajaxエラーコールバックは、タイムアウトが原因で失敗した場合に「timeout」のステータスを返すことがわかりました。

以下に例を示します。

$.ajax({
    url: "/ajax_json_echo/",
    timeout: 500,
    error: function(jqXHR, textStatus, errorThrown) {
        alert(textStatus); // this will be "timeout"
    }
});

ここではjsfiddleにあります

17

デフォルトではタイムアウトはありません。

4
lwpro2

XMLHttpRequest.timeoutプロパティは、リクエストが自動的に終了するまでにかかるミリ秒数を表します。デフォルト値は0は、タイムアウトがないことを意味します。重要な注意点は、ドキュメント環境で使用される同期XMLHttpRequestsリクエストにはタイムアウトを使用しないでください。そうしないと、InvalidAccessError例外がスローされます。 owningウィンドウでの同期リクエストにはタイムアウトを使用できません。

IE10と11は同期リクエストをサポートしていません。サポートは他のブラウザーでも段階的に廃止されます。これは、 有害な効果 が原因です。

詳細は こちら をご覧ください。

0
bodi0