0

製品ライセンスのために多くの IP アドレス検証を行うかなり大規模な PHP ページがあります。これらの検証ルーチンの 1 つは 20 ~ 30 秒かかることがありますが、それらの大部分はローカルで行われるため、非常に迅速に表示されます。その長いものを別の jQuery GET で起動し、高速なものの結果を確認しながら結果を表示したいと思います。

私が作業している「fastchecks」の疑似コードは次のとおりです-「slowchecks」はどのように/どこで起動されますか?

$.ajax(
{
    type: "GET",
    dataType: "json",
    url: "license/fastchecks/" + $("#ipblocks").val(),
    error:function (xhr, ajaxOptions, thrownError){
        alert("IP Checking Error: " + xhr.status + ": " + thrownError);
    },
    success: function(fastresults)
    {
        /* Do stuff with my fast check results while I wait for my slow check results */
    }
});

これは可能ですか?時限イベントに戻り続けていますが、プロセス自体が遅延であるため、意味がないように思えます。何か不足していますか?

4

1 に答える 1

1

あなたのコードはそのままで大丈夫です。タイマーなどを使用する必要はありません。「スローチェック」は「ファストチェック」とまったく同じです。ここでのキーワードは非同期です。そのsuccess関数は、ajax 呼び出しが完了するまで呼び出されません。したがって、ajax 呼び出しから取得したデータでやりたいことが何であれ、それをsuccess関数に入れても、結果が返されるまで実際には何もしません。

また、両方の Ajax 呼び出しを同時に実行します。それぞれが完了すると、独自の成功関数を実行します。

于 2012-05-18T15:41:51.997 に答える