我正在使用带有 Javascript 的轮询来使用 ajax 获取一些信息,但时间间隔完全相同。
intervalRequestId = setInterval('loadInfo()', 2500);
因为我现在知道,信息是在不同的时间间隔内出现的,所以我想在不同的时间间隔内进行轮询。例如:
第一个请求:2 秒后 - > 非常重要,即 2 秒后!第二次请求:7 秒后第三次请求 15 秒后第四次请求 25 秒后
有好的可能性吗?
我正在使用带有 Javascript 的轮询来使用 ajax 获取一些信息,但时间间隔完全相同。
intervalRequestId = setInterval('loadInfo()', 2500);
因为我现在知道,信息是在不同的时间间隔内出现的,所以我想在不同的时间间隔内进行轮询。例如:
第一个请求:2 秒后 - > 非常重要,即 2 秒后!第二次请求:7 秒后第三次请求 15 秒后第四次请求 25 秒后
有好的可能性吗?
(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);
})();