Javascript:xmlhttpRequest对象如何一次处理一个异步请求

时间:2010-11-05 02:26:38

标签: ajax xmlhttprequest

我对xmlhttprequest对象有疑问。 假设我创建了一个xmlhttprequest对象X来处理用户对服务器的请求(异步)。出于某种原因,服务器需要15秒才能响应。在这15秒内,如果用户点击另一个按钮,我将如何确定是否存在我创建的第一个xmlhttprequest对象以便相应地采取行动(告诉用户他/她需要等待第一个要求完成或取消它并继续第二个。)

在短期内,我需要知道是否有任何请求正在处理以处理另一个请求。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在初始调用中设置一个标志,然后在响应中清除它。如果适用于您正在使用的框架,请务必在错误回调中清除它。

var callInProgress = false;

...

function callSever() {
    callInProgress = true;
    ...
}

function responseHandler() {
    ...
    callInProgress = false;
}

function errorHandler() {
    ...
    callInProgress = false;
}