利用setTimeout模擬setInterval功能所產生的沒法清除的問題及解決辦法

一般,寫首頁輪播模塊時都須要用到間歇調用函數的調用與清除,因爲setInterval定時
 器存在一些性能上的問題,所以,在實際開發中都採用setTimeout來模擬setInterval的
 功能,其模擬代碼以下:
 var timer = setTimeout(function() {
     //doing something
     setTimeout(arguments.callee, interval)
 }, interval);
 因爲在timer 內部調用其自身,因此致使clearTimeout(timer)失效,對於這個問題,只需
 要稍作修改便可解決,其代碼以下:
 var timer = setTimeout(function() {
     //doing something
     timer = setTimeout(arguments.callee, interval)
 }, interval);
 這樣,便可經過clearTimeout(timer)清除setTimeout模擬的setInterval間歇調用程
 序;
 
 
 
 備註:若有更好的方法,各位網友能夠寫在評論區,本人感激涕零。
相關文章
相關標籤/搜索