0

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 要求を送信した直後に現在のページを離れたとしても、ブラウザーが要求を完了することを期待しています。

ブラウザが元のページから離れていても、リクエストが完了すると想定しても安全ですか?

4

1 に答える 1