2009-06-29 17 views

答えて

6

標準XMLHttpRequestオブジェクトは、組み込みのタイムアウトメカニズムを持っていません。タイムアウトする標準的な方法がないため、Ajaxリクエストは無期限に続行されます。ただし、you can get around thisという方法がありますが、これはASP.NETがフレームワークで行うことです。

IE8はbuilt-in timeout propertyの唯一のブラウザですので、私はAjaxフレームワークがそれと一貫していると推測しています。この場合、タイムアウトはデフォルトでは不定になります。

ASP.NETには、非同期ページタスクのプロパティがAsyncTimeoutであるため、フレームワークがASP.NETページの非同期タスクの既定値である45秒でタイムアウト(サーバー側)する可能性があります。

私が見つけたものからデフォルトのタイムアウトはないようです。もし私があなただったら、私はデフォルトのタイムアウトの長さに依存しません。タイムアウトが心配な場合は、自分の長さを指定する必要があります。タイムアウトは、デフォルトでは無期限に長くなる可能性があります。ユーザーは無期限に長く待たないので、タイムアウトをユーザーが対処しなければならない最大の待ち時間(コンテキストによって異なる)として定義する方がよい。

UPDATE
私は(のThread.sleep()を使用して)ロードするために65分かかりますページの方法でテストページを作成しました。ページメソッド呼び出しは65分を完全に待っていたので、私の前提が正しいと思われます。ページメソッドには、デフォルトでにはのタイムアウトがあります。タイムアウトすると、タイムアウトは1時間を超えます。ローカル開発マシンが無限のサーバータイムアウトを効果的に持ち、ASP.NETがスクリプトを無期限に実行できるようにすることを忘れないでください。既定では、運用構成のASP.NET実行タイムアウトは、実行している.NETのバージョンによって、between 90 and 110 secionts secondsになります。

+0

私はこれを2倍に増やすことができます。 –

+0

どのバージョンの.NETを使用していましたか? 3.5? – mlhDev

+0

@Matthew AsyncTimeout値のデフォルト値は2.0以降に変更されていません。 4.0までのすべてのものは、同じデフォルトのタイムアウト期間を使用します。 –

関連する問題