在Javascript中处理异步XHR请求时,我常常想,如果有的话 条件,用于浏览器可以调用onReadyStateChange-callback的时间。如果有 没有,会引起一些问题,如下例所示:
var state = -1;
doAsyncXhrReqeust("foo.bar", function() {
state = 1;
});
function doStateDependendAction() {
if(state === 1)
alert("file is available");
// if the callback above was called at this point, nothing would happen
else if(state === -1)
alert("file isn't available");
};
function doAsyncXhrRequest(url, callback) {
// simple AJAX-helper-function
};
正如您所看到的,如果状态在两者之间发生变化,则doStateDependendAction不执行任何操作 检查状态的两个if语句 我知道在这种情况下,我可以通过将状态分配给本地来解决这个问题 检查值之前的变量。
所以问题是,我是否总是需要关注这一点。 我的问题也适用于其他事件,例如用户交互和网络工作者。
的问候,
乌利