2013-12-23 43 views
2

我想收集超鏈接上的統計數據,但無需等待可能緩慢的AJAX響應而重定向。是否有可能同時重定向和發送AJAX請求而無需等待AJAX​​請求的響應?因爲它在$.post()之後有一個window.location.replace(),所以有時會發起AJAX調用,有時候不會。是否有可能在不等待AJAX​​請求的響應的情況下同時重定向和發送AJAX請求?

+0

你能發佈代碼嗎?它應該在url更改之前運行。你不應該等待任何事情發生的反應。 – Leeish

+0

@Leeish這不能保證。 – Brad

+0

我正在考慮對'ajaxStart'進行簡短的超時或頁面更改。如果您在啓動後重定向,那麼您應該很好。就像你說的,沒有等待迴應,你就會失敗。 – Leeish

回答

-1

當然是這樣,但如果您不等待回覆,您如何知道請求已完成?

正如您已經看到的那樣,「即忘即忘」和「立即重定向」將當前正在運行的所有對象和請求都截斷爲當前頁面上下文。由於瀏覽器不公開任何底層TCP鉤子以知道數據已發送,因此如果需要確保實際發送請求,則需要等待服務器的響應。

+0

Downvote沒有解釋?爲什麼?這是問題的正確答案。 – Brad

+0

不知道是誰做的,但是再一次,如何在ajaxstart上重定向?會保證請求被髮送了嗎? – Leeish

+0

@leeish請求開始時會觸發該事件,但不能保證請求已完成。 – Brad

0

我不這麼認爲,如果您在發出ajax請求並且正在等待響應之後手動點擊鏈接。Firefox不會顯示任何提醒,但不會允許點擊,Chrome會顯示提醒。

如果您在使用javascript重定向後使用window.location.href進行ajax請求後,它可能會在不等待ajax請求的響應的情況下進行重定向。