Javascript计时器用法

时间:2013-01-04 06:08:59

标签: javascript html ajax timer

我的页面中有一个案例,我有六个小部件(即div),每个小部件在不同的时间间隔上调用一个ajax函数(一个div间隔可能是20s,其中一个是30s)。获得结果后服务器,我将更新相应的panels.Which是处理这种情况的最佳方式。这是一个很好的做法,为每个面板保留六个不同的javascript计时器(例如:像setInterval,setTimeout)。如果不是,最好的是什么处理这种情况的方法。

1 个答案:

答案 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));
})()