setTimeout不能太长
Can setTimeout be too long?
本文关键字:不能 setTimeout 更新时间:2023-09-26
我正在创建一个应用程序,用于轮询服务器以获取特定更改。我使用了一个使用setTimeout的自调用函数。基本上是这样的:
<script type="text/javascript">
someFunction();
function someFunction() {
$.getScript('/some_script');
setTimeout(someFunction, 100000);
}
</script>
为了降低服务器上的轮询强度,我希望有更长的超时间隔;可能在1分钟到2分钟的范围内。是否存在setTimeout的超时时间过长而无法正常工作的情况?
您在技术上还可以。您可以有长达24.8611天的超时时间如果你真的想的话。setTimeout可以高达2147483647毫秒(32位整数的最大值,大约是24天),但如果它高于这个值,你会看到意外的行为。请参阅为什么setTimeout()"中断";对于大的毫秒延迟值?
对于像轮询这样的间隔,我建议使用setInterval,而不是递归的setTimeout。setInterval可以执行您想要的轮询操作,而且您还可以进行更多的控制。示例:要随时停止间隔,请确保存储了setInterval的返回值,如下所示:
var guid = setInterval(function(){console.log("running");},1000) ;
//Your console will output "running" every second after above command!
clearInterval(guid)
//calling the above will stop the interval; no more console.logs!
setTimeout()
使用32位整数作为其延迟参数。因此,最大值为:
2147483647
与其使用递归setTimeout()
,我建议使用setInterval()
:
setInterval(someFunction, 100000);
function someFunction() {
$.getScript('/some_script');
}
相关文章:
- setTimeout不能太长
- 为什么javascript setTimeout()不能在循环中工作
- setTimeout没有'不能立即启动
- 不能在流星应用程序上使用 setTimeout() 的函数
- JQuery .click() 处理程序不能接受函数周围的 setTimeout()
- setTimeout window.open 不能接受这个.href
- 为什么我们不能在 setTimeout 上调用和应用
- setTimeout不能与onmouseout一起工作
- setTimeout不能强制浏览器立即重新绘制
- setTimeout不能在safari手机上工作
- 为什么setTimeout不能像预期的那样工作?
- setTimeout()不能正确调用嵌套函数
- JavaScript不能在一个循环中有多个setTimeout函数
- 不能传递参数给这个.settimeout内部的样式
- 不能让随机数为setTimeout工作
- ie11的setTimeout不能正常工作
- javascript setTimeout不能识别函数参数
- SetTimeout在jQuery中不能正常工作
- 为什么不能在自引用函数调用中向setTimeout传递参数呢?
- 流星邮件-同步Cron - setTimeout回调异常:TypeError:不能调用方法'getTime