2009-06-29 118 views

回答

6

標準的XmlHttpRequest對象沒有內置的超時機制。由於沒有標準的超時方式,Ajax請求將無限期地繼續。然而,有些方法我認爲是ASP.NET在他們的框架中執行的操作。

IE8是唯一一款帶有built-in timeout property的瀏覽器,所以我猜測他們的Ajax框架與此一致。在這種情況下,默認情況下,超時將是不確定的。

對於異步頁面任務,ASP.NET也具有AsyncTimeout屬性,因此框架可能會在45秒內超時(服務器端),這是ASP.NET頁面中異步任務的默認值。

從我能找到的東西看來沒有默認超時。如果我是你,我不會依賴默認的超時長度。如果您擔心超時,您應該指定自己的長度。超時默認情況下可以無限期地延長。用戶不會無限期地等待,因此最好將超時定義爲用戶不得不應對的最大等待時間(取決於上下文)。

UPDATE
我創建測試頁用,將採取65分鐘加載頁面方法(使用Thread.sleep代碼())。 Page Method調用等待了整整65分鐘,所以看起來我的假設是正確的。頁面方法有沒有默認超時,或者如果他們這樣做,超時超過1小時。不要忘記,本地開發機器實際上具有無限的服務器超時,所以ASP.NET將讓腳本無限期地運行。默認情況下,生產配置的ASP.NET執行超時值爲between 90 and 110 secionts seconds,具體取決於您正在運行的.NET版本。

+0

希望我可以把這個更高的票加倍投票! – 2011-02-10 17:02:24