Javascript java脚本setInterval设置延迟?
我们有一个每月运行一次java脚本线程的用例。但我们观察到的是,如果我们为setinterval函数提供3.5周的延迟,它将不尊重它,并开始每秒进行一次调度。是虫子吗?它是否有延迟的最大限制 有趣的是,同样适用于setTimeOutJavascript java脚本setInterval设置延迟?,javascript,setinterval,Javascript,Setinterval,我们有一个每月运行一次java脚本线程的用例。但我们观察到的是,如果我们为setinterval函数提供3.5周的延迟,它将不尊重它,并开始每秒进行一次调度。是虫子吗?它是否有延迟的最大限制 有趣的是,同样适用于setTimeOut <!DOCTYPE html> <html> <body> <input type="text" id="clock" /> <script> var int=setInterval(functi
<!DOCTYPE html>
<html>
<body>
<input type="text" id="clock" />
<script>
var int=setInterval(function(){clock()},1000*60*60*24*7*3.5);
function clock()
{
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById("clock").value=t;
}
</script>
<button onclick="int=window.clearInterval(int)">Stop</button>
</body>
</html>
var int=setInterval(函数(){clock()},1000*60*60*24*7*3.5);
功能时钟()
{
var d=新日期();
变量t=d.toLocaleTimeString();
document.getElementById(“时钟”).value=t;
}
停止
这非常接近0x8000000,我想知道是不是32,但某个地方的有符号算术
我刚刚检查了setInterval
和setTimeout
的规范和超时值,它们都定义为long
值,即有符号的32位。目前尚不清楚如何处理negativetimeout值
根据规范:
长setTimeout(函数处理程序,可选长超时,任意。。。
论据)
根据标准:
长类型是一种有符号整数类型,其值在
[−2147483648、2147483647]
要解决您的问题,我可以提出两个建议:
由于setTimeout
有效,请使用它并在处理功能结束时重新触发
或者,将
setInterval
设置为所需时间的一半,并每隔一段时间使用一次切换来执行代码。您可以只说clock
,而不是function(){clock()}
。在带有setInterval的javascript中,可能会出现一些错误,因此如果使用setTimeoutpossible复制
1000*60*60*24*7*3.5 = 0x7e2bce00