使用Javascript进行轮询,但是在不同的时间间隔内

时间:2011-10-08 09:31:20

标签: ajax-polling

我正在使用Javascript轮询来获取ajax的一些信息,但是时间间隔完全相同。

intervalRequestId = setInterval('loadInfo()', 2500);

因为我现在知道,信息来自不同的时间间隔,我想在不同的时间间隔进行轮询。例如:

第一次请求:2秒后 - >非常重要,即2秒后! 第二次请求:7秒后 15秒后第三次请求 25秒后的第四次请求

有可能吗?

1 个答案:

答案 0 :(得分:1)

(function(){
var iteration = 0, // keep track of your iterations
    delays = [7000, 15000, 25000], // delays between iterations
    callback; // wrapper for your loadinfo()

callback = function(){
    // run your function
    loadinfo();
    // determine next delay, if not set, use the last of the sequence
    var delay = delays[iteration] || delays[delays.length - 1];
    // next run, next iteration
    iteration++;
    // register callback to run after determined delay
    setTimeout(callback, delay);
};

// run first execution after 2 seconds
setTimeout(callback, 2000);
})();