【发布时间】:2011-11-28 16:00:22
【问题描述】:
最近我开发了一个项目,我在单个 aspx 页面上发送多个 ajax 请求。如果此请求以 5 秒的间隔发生,我还设置了一个计时器。 一切似乎都很好,直到突然反应混乱。我知道我可以对一个请求做同样的事情,但我想知道为什么会这样。我浏览了互联网,但我还没有找到任何解决方案。我现在实际上采用了这种编码风格,例如发出一个具有多个结果的请求,但我想知道并且我真的很想知道如何发出多个 ajax 请求,如果响应不会混淆。 这是我的示例代码:
$(document).ready(function () {
var a = setInterval("request1()", 5000);
var b = setInterval("request2()", 5000);
});
function request1() {
$.ajax({
url: 'ajaxhandler.aspx?method=method1' ,
beforeSend: function (xhr) {
xhr.overrideMimeType('text/plain; charset=utf-8');
},
success: function (data) {
alert(data);
}
});
}
function request2() {
$.ajax({
url: 'ajaxhandler.aspx?method=method2' ,
beforeSend: function (xhr) {
xhr.overrideMimeType('text/plain; charset=utf-8');
},
success: function (data) {
alert(data);
}
});
}
【问题讨论】:
-
搞混了?在异步环境中,您无法保证哪个调用会先返回。