2013-07-18 67 views
6

我知道如何等待ajax完成,但如果我打算在一些ajax調用關閉後重定向頁面,我應該等待它們在重定向之前完成嗎?有關係嗎?我應該等待ajax完成重定向頁面嗎?

+5

我想這取決於你是否需要對由ajax調用返回的狀態碼進行錯誤處理。如果您在完成之前重定向,您會如何知道它正確地通過了? – JanR

回答

5

如果您確信ajax調用會成功,那麼一旦發生ajax調用,就您的服務器而言,重定向不會影響它。但請不要忘記,客戶可能會失去聯繫或發生一些錯誤,因此您應該等待以確保呼叫成功。需要考慮的另一件事是,你的ajax調用是否會影響你要重定向到的任何頁面。在這種情況下,請務必在重定向之前等待。你不會希望你的用戶被重定向到一個破損的頁面,因爲他們的連接速度很慢,或者你的服務器有呃逆。

+0

的確如此。舉例來說,計算頁面瀏覽量的ajax調用可能會被遺忘。 – Lix

+1

ajax是計數頁面瀏覽量的好方法嗎?不會計算JS關閉的用戶數。 –

+0

只有約2%的用戶禁用JavaScript:http://stackoverflow.com/questions/9478737/browser-statistics-on-javascript-disabled。所以真的取決於你想要的準確程度......我通常只是親自忽略這些人。 – adavea

1

我建議等待並處理可能發生的錯誤。

通過同步完成整個過程,您可以獲得安全連接,錯誤檢測,更好的軟件,使重定向進入最後。

您可能會花費0.1秒的執行次數,但是誰在乎呢?

+0

不是真的,它是我想要從ajax做什麼的過程是什麼去20secs。很在乎。 – vaso123

+0

自發表此評論以來,已經有一段時間了。我應該清楚的是,我基本上暗示與被接受的答案相同的事情是,如果你可以絕對保證執行會成功,那麼肯定,你可以重定向,但有可能這個連接只是簡單的迷路或者會出現你想要處理的異常。 – Jonast92

1

我認爲Ajax後跟重定向對於Ajax並不是一個好的用例。 相反,我會建議做一個定期的服務器請求,然後在重定向到您的最終目的地之前照顧服務器上的所有操作。

這將使更簡單的模式和更少的網絡流量。 如果您想避免重新加載頁面,我建議使用Ajax。但是,在您的場景中,您計劃在操作完成後立即離開頁面,那麼爲什麼不避免Ajax會給你帶來的後果。