tom*_*umb 14 javascript setinterval
今天我遇到了window.setInterval的一个有趣问题.当使用足够大的延迟(在这种情况下是30天内的毫秒数)时,它每秒执行一次而不是每30天执行一次.在最新的Chrome和Firefox中测试过.
window.setInterval(function() {
document.getElementById("first").innerHTML = new Date().toString();
}, 5000);
window.setInterval(function() {
document.getElementById("second").innerHTML = new Date().toString();
}, 2592000000);
Run Code Online (Sandbox Code Playgroud)
我在setInterval中找不到关于延迟最大值的任何权威文档,MDN文档没有提到任何内容.其他在线资料表明,延迟应该能够容纳任何带符号的32位整数.
window.setInterval中的delay参数是否具有最大值,它是什么?
根据setTimeout公共维基MDN上的文档确实有一个最大值,虽然它似乎不是"官方" - 限制是一个带符号的32位整数.
最大延迟值
包括Internet Explorer,Chrome,Safari和Firefox在内的浏览器将延迟存储为内部的32位有符号整数.当使用大于2147483647的延迟时,这会导致整数溢出,从而导致立即执行超时.
值2592000000确实大于2147483647导致溢出的值.
| 归档时间: |
|
| 查看次数: |
1169 次 |
| 最近记录: |