0

私は PHP/jQuery を使用しており、次のシナリオがあります。

site1.php別のサイト ( )を指すリンクを持つサイト ( ) がsite2.phpあります。また、このリンクに、別のサイト ( ) を要求する jQuery を使用した ajax-onclick-event を追加しましたajaxcall.php。この他のサイトには、やるべきことが「たくさんある」ので、短い依頼ではありません。

私の目標は: リクエストをajaxcall.phpバックグラウンド (非同期) に設定し、すぐに に移動しsite2.phpます。( の返事はいらないajaxcall.php)

私の最初の実装は次のようなものでした:

<!DOCTYPE html>
<html>
<head>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $("#link").on("click",function(){
            $.get('./ajaxcall.php');
    </script>
</head>
<body>
    <a href="./file2.php" id="link">link</a>
</body>
</html>

明らかにこれはうまくいきません。ajax-request (非同期) は、ページが変更されるとすぐに中止されるためです。

したがって、私が見る限り、ここには2つの可能性があります。

  1. リクエストを同期させ、読み込みインジケーターを表示します ( $.ajax({url: './ajaxcall.php',async:false});)
    --> デメリット:完了file2.phpする前に開かないajaxcall.php

  2. ポップアップ ( window.open('ajaxcall.php')) を開き、synchron-ajax-request / またはそれに類似したものを作成し、その後自動的に閉じる --> 利点:file2.phpほとんどすぐに開く必要がある --> (大きな)欠点: ポップアップ

  3. ??? より良い方法???

私が達成しようとしていること、そしてあなたが私を助けてくれることをあなたが理解してくれることを願っています:)

4

3 に答える 3