2012-07-09 54 views
0

我正在開發一個Web應用程序,它將依賴於大量的jQuery AJAX請求。在我的開發環境中,PHP通常會處理並返回300ms內的數據。選擇合適的jQuery AJAX超時長度時應考慮哪些因素?

在典型和小型網站託管設置的生產環境中,在爲異步,jQuery GET請求設置合適的超時時應考慮哪些因素,以便客戶端可以隨時瞭解?

+1

正如你寫你的問題,它不是真正的權利,使格式SO不喜歡被詢問人的意見對什麼是'best'問題。但是,如果您將問題改爲「在選擇適當的ajax超時長度時應考慮哪些因素」,那麼它就更適合SO格式,這就是我提供答案的精神。 – jfriend00 2012-07-09 02:47:13

+0

啊! ,感謝SO反饋。我非常感謝你的建議。我會改變問題標題。 – Paul 2012-07-09 02:52:58

回答

1

首先,我假設我們正在討論不鎖定瀏覽器的異步請求。

其次,它確實取決於負責提供該請求的服務器的性能配置文件以及成功請求/響應的響應時間分佈。

如果成功的請求可以在幾毫秒到幾分鐘內完成,具體取決於請求類型或服務器負載,那麼您可以讓超時至少與成功請求所需時間一樣長(允許用戶選擇等待成功的請求來完成)。如果您擔心用戶不耐煩,請在10秒後添加一個取消或停止按鈕,如果請求沒有儘快完成,那麼不耐煩的用戶可以保釋,但病人用戶可以等待它完成。

如果,另一方面,你從研究服務器或從經驗中,如果請求沒有在15秒內完成,則這是極不可能的,它要成功完成知道,那麼就真的設置無點超時的時間超過了。

第三,它還取決於ajax調用的重要性以及它如何適應用戶交互。如果它是一個可選的後臺操作(可能是一個自動完成匹配請求),那麼您可以儘快放棄,並在未來一段時間安排下一個請求。如果它是直接的用戶操作(如保存按鈕),那麼您確實應該盡力讓請求成功完成並給它更長的時間。

總之,你應該考慮以下因素:

  1. 是Ajax請求可選的背景(如自動完成)或特定的用戶操作(如保存或加載)?

  2. 服務器成功ajax響應可能花費的最長時間是多少?您應該讓患者用戶至少等待該請求成功的時間。

  3. 您是否提供了不耐煩的用戶取消長時間運行請求的能力?如果是這樣,您可以讓請求延長。

  4. 如果您不知道服務器的響應能力如何,那麼您應該讓它運行至少120秒,因爲某些服務器可能需要這麼長時間,但是您應該考慮爲不耐煩的用戶提供中止請求的能力以及去做他們的其他事情。

相關問題