0

我有一个相当广泛的 PHP 页面,它为我们的产品许可进行了大量的 IP 地址验证。其中一个验证例程可能需要 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

你的代码是好的。您不需要使用任何计时器或类似的东西。您的“slowchecks”将与您的“fastchecks”完全相同。这里的关键字是异步的。直到 ajax 调用完成后,该success函数才会被调用。因此,无论您想对从 ajax 调用中获得的数据做什么,都将其放入您的success函数中,在返回结果之前实际上不会做任何事情。

此外,您将同时运行两个 Ajax 调用。每个完成后都会运行它自己的成功函数。

于 2012-05-18T15:41:51.997 回答