1

每当我试图找到这个问题的答案时,每个人都会提到 ajax 启动/停止等。

我正在使用XUI JS 的 XHR函数进行跨域调用,现在我想要这样

callMyXHRfunction();
callNextFunctionWhenAboveFunctionResponded();

即我应该继续前进,直到我的 xhr 函数响应(成功或失败)

更新

用例:

有一个函数叫做getAllData(),这个函数获取我当前提交给服务器的所有数据。我需要经常调用这个函数来获取最新数据并继续前进。在登录时,我调用此函数以获取最新数据,每 10 分钟后我需要调用此函数以刷新数据。

因此,如果我在成功函数上调用我的每个函数,那么我的代码可能会使其他开发人员感到困惑,如果我像上面那样编写,他/她将很容易知道第一行和第二行发生了什么。

希望现在每个人都非常了解我的情况。

4

2 回答 2

1

请参阅您引用的网站上的第三个示例:

x$( selector ).xhr( url, fn );

第二个参数可以是回调,回调是您可能开始寻找的关键字。

async: false或者,通过作为选项提供来使用同步调用。

x$("body").xhr("http://the-url",{ async: false });

控制流将暂停,直到请求返回,然后才继续执行下一个函数。请参阅http://jsfiddle.net/ZQ9uw/以供参考。

于 2012-10-01T08:01:14.260 回答
0

您需要以.xhr指定回调函数的方式进行调用,并将“下一个”函数作为回调传递。

所以你会这样写:

callMyXHRFunction(nextFunctionToCall); // no parens after nextFunctionToCall!

function callMyXHRFunction(callback) {
    $("something").xhr(url, {
        error: callback, // so that nextFunctionToCall is called on error
        callback: callback, // so that nextFunctionToCall is called on success
        async: true
        // add more options here
    });
}
于 2012-10-01T08:03:34.243 回答