多个Ajax调用在一个页面中调用多个超时
本文关键字:调用 超时 一个 多个 Ajax | 更新日期: 2023-09-27 18:24:33
汇总:我必须使用C#从一个服务(托管在多台服务器上)中获取多个数据,并最终使用ajax调用在一个页面上向用户显示这些数据。考虑一下,最终的显示格式包含由Jquery创建并由CSS样式化的图表和进度。
某些代码:
// Once Called Here and Timer Will Go On
UpdateDataA();
function UpdateDataA() {
$.ajax({
type: "POST",
async: true,
url: "Default.aspx/GetData",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var $s = $(".second");
$s.val(r.d[0]).trigger("change");
updateProgressA(r.d[1]);
updateProgressB(r.d[2]);
updateNetworkData(bytesToSize(r.d[5], 2), bytesToSize(r.d[6], 2));
},
error: function (msg) {
alert(msg.error);
}
});
setTimeout(function () { UpdateDataA(); }, 1000);//Timer
}
考虑更多这样的电话。
问题:计时器间隔不会按照设置的间隔更新。一个元素更新正确,然后等待其他元素完成,而它不应该完成。但我需要不断更新。这样,如果一个呼叫崩溃,其他呼叫就会死亡。
问题:我能做什么或我有什么错?
注意:我是jquery和ajax的新手。
感谢您之前的
忽略我对间隔的评论。我认为你需要跟踪你的计时器:
timerA = setTimeout(function () { UpdateDataA(); }, 1000);
并清除更新功能中的,直到任务完成
var timerA;
// Once Called Here and Timer Will Go On
UpdateDataA();
function UpdateDataA() {
clearTimeout(timerA);
$.ajax({
type: "POST",
async: true,
url: "Default.aspx/GetData",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var $s = $(".second");
$s.val(r.d[0]).trigger("change");
updateProgressA(r.d[1]);
updateProgressB(r.d[2]);
updateNetworkData(bytesToSize(r.d[5], 2), bytesToSize(r.d[6], 2));
timerA = setTimeout(function () { UpdateDataA(); }, 1000);//Restart time after task is complete
},
error: function (msg) {
alert(msg.error);
}
});
}