2017-07-10 27 views
0

我確定這裏有這方面的信息,但是我的谷歌搜索功能讓我失望。確保發送的錨定標記點擊處理程序中創建的XHR請求?

我想知道的是,如果我在定位標籤點擊事件處理程序中觸發XHR請求,請求保證發送嗎?我不在乎處理響應,但我不知道請求是否有可能在離開之前不會離開unsent狀態。

例如,假如我想跟蹤所有的錨標籤的點擊次數,所以我做這樣的事情:

$("a").on("click",() => $.ajax({ url: "/track_link_click", method: "POST" });

是否存在這樣的事件處理程序的要求從來沒有被髮送的情況嗎?我可以防止地點變化發生,直到收到回覆,但我寧願不要。

在此先感謝!

回答

1

有沒有保證,通過設計,但在實踐中,我很確定所有的瀏覽器至少會發送請求。

我建議你看看navigator.sendBeacon()這是專爲這種類型的東西。其目的是保證即使在頁面卸載後發生請求,也會發送請求。 https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon

它不支持IE瀏覽器,也不支持Safari瀏覽器,所以你需要依靠常規的AJAX方法作爲後備。

+0

謝謝!我認爲這回答我的問題。 'sendBeacon'正是我所需要的,但我可能無法將它用於當前情況。如果你有更多的資源可以更好地理解爲什麼沒有保證請求被激發,我很想閱讀! –

相關問題