2017-07-10 13 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'は私が必要とするものですが、現在のケースでは使えないかもしれません。あなたがなぜ保証がないのかをよりよく理解するためのリソースがあれば、私は読んでみたいと思っています! –

関連する問題