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 相关文章推荐
JavaScript动态插入script的基本思路及实现函数
Nov 11 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
Dec 13 Javascript
jQuery设置和获取HTML、文本和值示例
Jul 08 Javascript
jQuery多级弹出菜单插件ZoneMenu
Dec 18 Javascript
JavaScript多并发问题如何处理
Oct 28 Javascript
javascript断点调试心得分享
Apr 23 Javascript
简单的渐变轮播插件
Jan 12 Javascript
微信小程序 利用css实现遮罩效果实例详解
Jan 21 Javascript
vue中component组件的props使用详解
Sep 04 Javascript
基于vue实现移动端圆形旋钮插件效果
Nov 28 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
Jun 02 Javascript
Vue作用域插槽实现方法及作用详解
Jul 08 Javascript
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
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
php指定长度分割字符串str_split函数用法示例
2017/01/30 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
javascript实现表单验证
2016/01/29 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
Vue2.x中的Render函数详解
2017/05/30 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
python中ConfigParse模块的用法
2014/09/29 Python
Python实现子类调用父类的方法
2014/11/10 Python
Python的标准模块包json详解
2017/03/13 Python
python实现字符串和字典的转换
2018/09/29 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
Python中PyQt5/PySide2的按钮控件使用实例
2019/08/17 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
致跳高运动员加油稿
2014/02/12 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server