setTimeout 不断吐食CPU的问题分析


Posted in Javascript onApril 01, 2009
<script language="javascript"> 
function PollConn(){ 
TimeCounter=window.setTimeout('PollConn();',5000); 
function StopPoll(){ 
window.clearTimeout(TimeCounter) 
} 
PollConn(); 
</script>

上面的方法一般是比较通用的方法。不停的每隔5秒钟调用一下自己。在一般的运用中,用户访问含有这样代码的页是没感觉出它有什么问题。但是如果用户在这样的页里需要停留的时间很长,就会用问题。因为setTimeout会不停的“吐食”CPU,慢慢的CPU最终会被这样的代码吃光,造成IE死掉,或停止执行。
解决的办法,在下次调用之前先用clearTimeout清除一下。
<script language="javascript"> 
function PollConn(){ 
if(TimeCounter) window.clearTimeout(TimeCounter) //清除上次的setTimeout 
TimeCounter=window.setTimeout('PollConn();',5000); 
function StopPoll(){ 
window.clearTimeout(TimeCounter) 
} 
PollConn(); 
</script>
Javascript 相关文章推荐
jquery select选中的一个小问题
Oct 11 Javascript
JavaScript验证电子邮箱的函数
Aug 22 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
Apr 06 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
Jan 25 Javascript
canvas实现探照灯效果
Feb 07 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
vue轮播图插件vue-concise-slider的使用
Mar 13 Javascript
vue实现验证码按钮倒计时功能
Apr 10 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
Apr 23 Javascript
在Vue中获取组件声明时的name属性方法
Sep 12 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 jQuery
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
js Flash插入函数免激活代码
Mar 31 #Javascript
响应鼠标变换表格背景或者颜色的代码
Mar 30 #Javascript
用JavaScript实现单继承和多继承的简单方法
Mar 29 #Javascript
javascript 极速 隐藏/显示万行表格列只需 60毫秒
Mar 28 #Javascript
一个tab标签切换效果代码
Mar 27 #Javascript
js onpropertychange输入框 事件获取属性
Mar 26 #Javascript
input 高级限制级用法
Mar 26 #Javascript
You might like
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
比较搞笑的js陷阱题
2010/02/07 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
解决Mac下使用python的坑
2019/08/13 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
在keras里实现自定义上采样层
2020/06/28 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
品恩科技软件测试面试题
2014/10/26 面试题
会计与审计毕业生自荐信范文
2013/12/30 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
故宫导游词
2015/01/31 职场文书
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL