CSharp - 在一个页面中,多个Ajax调用多个超时

  显示原文与译文双语对照的内容
0 0

我必须使用 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的新手。

感谢你之前

时间:原作者:3个回答

0 0

忽略我关于间隔的评论。 我认为你需要跟踪你的计时器:

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);
 }
 });
}
原作者:
...