setTimeout 不斷吐食CPU的問題分析
更新時(shí)間:2009年04月01日 00:47:48 作者:
有時(shí)候我們?cè)谑褂胹etTimeout的時(shí)候會(huì)導(dǎo)致IE特別占用cpu,有可能會(huì)導(dǎo)致死機(jī)等情況。
復(fù)制代碼 代碼如下:
<script language="javascript">
function PollConn(){
TimeCounter=window.setTimeout('PollConn();',5000);
function StopPoll(){
window.clearTimeout(TimeCounter)
}
PollConn();
</script>
上面的方法一般是比較通用的方法。不停的每隔5秒鐘調(diào)用一下自己。在一般的運(yùn)用中,用戶訪問含有這樣代碼的頁是沒感覺出它有什么問題。但是如果用戶在這樣的頁里需要停留的時(shí)間很長(zhǎng),就會(huì)用問題。因?yàn)閟etTimeout會(huì)不停的“吐食”CPU,慢慢的CPU最終會(huì)被這樣的代碼吃光,造成IE死掉,或停止執(zhí)行。
解決的辦法,在下次調(diào)用之前先用clearTimeout清除一下。
復(fù)制代碼 代碼如下:
<script language="javascript">
function PollConn(){
if(TimeCounter) window.clearTimeout(TimeCounter) //清除上次的setTimeout
TimeCounter=window.setTimeout('PollConn();',5000);
function StopPoll(){
window.clearTimeout(TimeCounter)
}
PollConn();
</script>
相關(guān)文章
JavaScript中如何讓?x?==?1?&&?x?==?2?&&?x?==?3?等式成立
這篇文章主要介紹了JavaScript中如何讓x==1&&x==2&&x==3等式成立,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07在javascript將NodeList作為Array數(shù)組處理的方法
在Web前端編程中,我們通常會(huì)通過document.getElementsByTagName的方法取出一組相同標(biāo)簽的dom元素。2010-07-07一個(gè)最簡(jiǎn)單的級(jí)聯(lián)下拉菜單
一個(gè)最簡(jiǎn)單的級(jí)聯(lián)下拉菜單...2006-12-12jquery和js顯示和隱藏div的幾種方法對(duì)比整理
jQuery是基于JavaScript的一種框架。jQuery封裝js和Ajax的功能,提供函數(shù)接口,簡(jiǎn)化js的操作。使用jquery來顯示或者隱藏div真的很方便。2023-02-02js中設(shè)計(jì)一段程序,讓它能夠打印自己的方法收集藏
js中設(shè)計(jì)一段程序,讓它能夠打印自己的方法收集藏...2007-03-03