0

我的页面中有一个案例,我有六个小部件(即 div),每个小部件在不同的时间间隔调用一个 ajax 函数(一个 div 间隔可能是 20 秒,另一个是 30 秒)。从服务器获取结果后,我将更新相应的面板。这是处理这种情况的最佳方法。为每个面板保留六个不同的 javascript 计时器是否是一个好习惯(例如:像 setInterval、setTimeout)。如果没有,最好的处理方法是什么这种情况。

4

1 回答 1

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));
})()
于 2013-01-04T06:18:12.173 回答