我的页面中有一个案例,我有六个小部件(即div),每个小部件在不同的时间间隔上调用一个ajax函数(一个div间隔可能是20s,其中一个是30s)。获得结果后服务器,我将更新相应的panels.Which是处理这种情况的最佳方式。这是一个很好的做法,为每个面板保留六个不同的javascript计时器(例如:像setInterval,setTimeout)。如果不是,最好的是什么处理这种情况的方法。
答案 0 :(得分:2)
<强>解决方案:强>
duration = 20;
(function getMoreData(divIndex) {
console.log("Process First");
// Get ajax data for first div
$.ajax({
url: url1,
dataType: 'json',
data: "",
timeout: 5000,
success: function(data) {
dataFlag[divIndex]= true;
// Process data...
// Update "div 1"
},
error: function() {
dataFlag[divIndex]= true;
// Process error
}
});
// Second div
console.log("Process Second");
// Get ajax data for second div
$.ajax({
url: url2,
dataType: 'json',
data: "",
timeout: 5000,
success: function(data) {
dataFlag[divIndex]= true;
// Process data...
// Update "div 2"
},
error: function() {
dataFlag[divIndex]= true;
// Process error
}
});
// Third div
console.log("Process Third");
// Get ajax data for second div
$.ajax({
url: url3,
dataType: 'json',
data: "",
timeout: 5000,
success: function(data) {
dataFlag[divIndex]= true;
// Process data...
// Update "div 3"
},
error: function() {
dataFlag[divIndex]= true;
// Process error
}
});
setTimeout(getMoreData, (duration * 1000));
})()