setTimeout 不斷吐食CPU的問題分析
更新時間:2009年04月01日 00:47:48 作者:
有時候我們在使用setTimeout的時候會導(dǎo)致IE特別占用cpu,有可能會導(dǎo)致死機等情況。
復(fù)制代碼 代碼如下:
<script language="javascript">
function PollConn(){
TimeCounter=window.setTimeout('PollConn();',5000);
function StopPoll(){
window.clearTimeout(TimeCounter)
}
PollConn();
</script>
上面的方法一般是比較通用的方法。不停的每隔5秒鐘調(diào)用一下自己。在一般的運用中,用戶訪問含有這樣代碼的頁是沒感覺出它有什么問題。但是如果用戶在這樣的頁里需要停留的時間很長,就會用問題。因為setTimeout會不停的“吐食”CPU,慢慢的CPU最終會被這樣的代碼吃光,造成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等式成立,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07在javascript將NodeList作為Array數(shù)組處理的方法
在Web前端編程中,我們通常會通過document.getElementsByTagName的方法取出一組相同標(biāo)簽的dom元素。2010-07-07