You are here: 首頁 Javascript相關訊息 關於setTimeout的問題setTimeout

飛朵啦學習手札

本網站建議使用Firefox2.0以上,或是使用Goole瀏覽器來瀏覽,並使用1024x768解析度來觀看.

關於setTimeout的問題setTimeout

E-mail 列印 PDF

最近在寫setTimeout時,用ajax方式去呼叫,發現怎麼倒數越來越快,原來AJAX在呼叫時,也會把它給重制,就變得倒數越來越快,解決方式,網上有類似的解決方式,以下為轉貼:

有時候我們在使用setTimeout的時候會導致IE特別佔用cpu,有可能會導致死機等情況。

 

 

<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>

最近更新 ( 週四, 17 十一月 2011 13:43 )  
 

新增回應


驗證碼
更新