是否有window.setInterval的最大延迟限制?

Is there a maximum delay limit for window.setInterval

本文关键字:延迟 window setInterval 是否      更新时间:2023-09-26

今天我遇到了一个有趣的window.setInterval问题。当延迟足够大时(在本例中是30天内的毫秒数),它每秒钟执行一次,而不是每30天执行一次。已在最新版Chrome和Firefox中测试。

jsFiddle联系

window.setInterval(function() {
    document.getElementById("first").innerHTML = new Date().toString();
}, 5000);
window.setInterval(function() {
    document.getElementById("second").innerHTML = new Date().toString();
}, 2592000000);

我找不到关于setInterval中延迟最大值的任何权威文档,MDN文档也没有提到任何内容。其他在线资源建议延迟应该能够容纳任何有符号的32位整数。

执行窗口中的延迟参数。setInterval有一个最大值,它是什么?

根据公共wiki MDN上的setTimeout文档,确实有一个最大值,尽管它似乎不是"官方的"-限制是一个有符号的32位整数。

最大延迟值

浏览器包括Internet Explorer、Chrome、Safari和Firefox在内部将延迟存储为32位有符号整数。这会导致当使用大于2147483647的延迟时,整数溢出,导致

2592000000的值确实大于2147483647,从而导致溢出