PHPで書かれたウェブショップがあります。サード パーティのクリック トラッカーを統合したいカテゴリ ページ: 記事がクリックされるたびに、サーバーに AJAX リクエストを送信する必要があります。これにより、REST リクエストがサード パーティのトラッキング サーバーに送信されます。
たとえば、製品リンクが次のようになっているとします。
<a href="product.php?id=1234" class="product" data-id="123">Product A</a>
安全のために、トラッキング リクエストが完了するのを待ってから、ブラウザを製品 URL にリダイレクトします。
$('a.product').on('click',function(e) {
e.preventDefault();
var a = $(this);
$.getJSON(trackingUrl, {id:a.data('id')}, function(d) {
window.location.href = a.attr('href');
});
});
これには明らかな欠点があります。ブラウザは AJAX リクエストが完了するまで待たなければならないため、製品のクリック後に遅延が発生します。
そこで、AJAX リクエストの応答を待たない、ファイア アンド フォーゲット アプローチを考えました。
$('a.product').on('click',function(e) {
e.preventDefault();
var a = $(this);
$.getJSON(trackingUrl, {id:a.data('id')});
window.location.href = a.attr('href');
});
ここでは、正常な応答を待たずに、AJAX 要求を送信した直後に現在のページを離れたとしても、ブラウザーが要求を完了することを期待しています。
ブラウザが元のページから離れていても、リクエストが完了すると想定しても安全ですか?