jQuery并行AJAX调用混淆了返回值
jQuery parallel AJAX call mixes up return values
在下面的JavaScript代码中,我反复对FastCGI模块进行AJAX调用,以查询一些值。在某个时刻,当div2
情况的data
变量不是0
但包含应进入div1
的值时,代码终止,而div1
显示应进入div2
的值。
我使用的是Chromium浏览器(14.0.835.202(Developer Build 103287 Linux)Ubuntu 10.10),但FireFox也会出现这种情况。我还尝试单独使用XMLHttpRequest对象,得到了相同的结果。
这怎么可能,这怎么解决?
function TimerEvent() {
$.ajax({
url: "/cgi-bin/wvvar.cgi",
type: "POST",
data: "cmd=get&varname=s@SYSDATETIME",
success: function(data) {
document.getElementById("div1").innerHTML = data;
}
});
$.ajax({
url: "/cgi-bin/wvvar.cgi",
type: "POST",
data: "cmd=get&varname=@LOGINSTATE",
success: function(data) {
document.getElementById("div2").innerHTML = data;
if (data == "0")
setTimeout("TimerEvent()", 50);
}
});
}
也许试着让它们按顺序排列:
function TimerEvent() {
$.ajax({
url: "/cgi-bin/wvvar.cgi",
type: "POST",
data: "cmd=get&varname=s@SYSDATETIME",
success: function(data) {
document.getElementById("div1").innerHTML = data;
$.ajax({
url: "/cgi-bin/wvvar.cgi",
type: "POST",
data: "cmd=get&varname=@LOGINSTATE",
success: function(data) {
document.getElementById("div2").innerHTML = data;
if (data == "0")
setTimeout("TimerEvent()", 50);
}
});
}
});
}
如果您的要求允许,请尝试以下操作:
function TimerEvent() {
$.ajax({
url: "/cgi-bin/wvvar.cgi",
type: "POST",
data: "cmd=get&varname=s@SYSDATETIME",
success: function(data) {
document.getElementById("div1").innerHTML = data;
$.ajax({
url: "/cgi-bin/wvvar.cgi",
type: "POST",
data: "cmd=get&varname=@LOGINSTATE",
success: function(data) {
document.getElementById("div2").innerHTML = data;
if (data == "0")
setTimeout("TimerEvent()", 50);
}
});
}
});
}
尝试通过添加async=false
选项来同步执行调用。
相关文章:
- 如何记录调用另一个函数的函数的返回值
- 单击按钮时,使用Javascript调用并返回值
- 从JSP页面调用Java Script函数未返回值
- jQuery 延迟的 AJAX 调用返回值
- 未使用返回值时调用方法
- 如何在循环中调用Promise函数并保存其返回值
- AngularJS如何从异步调用返回值
- angularjs从html调用函数返回值
- jQuery deferred:用于延迟函数的返回,直到函数内的异步调用完成+获取返回值
- PHP调用脚本函数,返回值为Uncaught SyntaxError:意外的令牌ILLEGAL
- 如何使用Ajax内部调用JQuery在函数中获取返回值
- 为什么当我调用具有返回值的函数时,我的 onclick 事件不起作用
- 从函数从 JavaScript 调用 servlet 的 Ajax 不返回值
- 带有 AJAX 调用的 Javascript 函数 - 在响应后返回值
- 将一个函数作为参数传递给另一个函数,每次调用函数时检查返回值
- 从 PHP 获取 AJAX 调用的返回值
- 如何在 c# 代码隐藏中调用具有返回值的 Javascript 函数
- Javascript 函数返回 value.根据第一个函数返回值调用另一个函数
- 基于JSF中动作控制器方法的返回值调用javascript
- 基于控制器返回值调用javascript方法