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 1.4 中的Ajax问题
Jan 23 Javascript
纯css+js写的一个简单的tab标签页带样式
Jan 28 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
Apr 03 Javascript
javascript 获取元素样式必杀技
May 04 Javascript
鼠标悬停小图标显示大图标
Jan 22 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
Aug 02 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
Mar 15 Javascript
javascript 中的继承实例详解
May 05 Javascript
Vue中使用的EventBus有生命周期
Jul 12 Javascript
解决layui的table插件无法多层级获取json数据的问题
Sep 19 Javascript
js实现GIF图片的分解和合成
Oct 24 Javascript
JavaScript 绘制饼图的示例
Feb 19 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 常用字符串函数总结
2008/03/15 PHP
php获取post中的json数据的实现方法
2011/06/08 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
php的扩展写法总结
2019/05/14 PHP
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
js中数组常用方法总结(推荐)
2019/04/09 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
对python调用RPC接口的实例详解
2019/01/03 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
Python的UTC时间转换讲解
2019/02/26 Python
详解Python 函数如何重载?
2019/04/23 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
python/golang 删除链表中的元素
2020/09/14 Python
python 绘制场景热力图的示例
2020/09/23 Python
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
优秀教师推荐材料
2014/12/16 职场文书
2015国庆节感想
2015/08/04 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python