博客逐步遷移到,獨立博客,原文地址,http://www.woniubi.cn/js_hide_tab_setinterval/javascript
咱們一直都在說,JS的定時很是的不許確,可是不多有人去驗證他,今天我就來驗證一下。首先咱們準備一個簡單的例子。java
簡單例子瀏覽器 |
每隔一秒鐘,而後輸出離最開始的時間差距有多大。ide
<script type="text/javascript"> var begin = (new Date()).getTime(); var i = 0; setInterval(function(){ ++i; var now = (new Date()).getTime(); var intvals = ((now - begin)/1000).toFixed(3); var str = "num:" + i + ";use time:" + intvals; console.log(str); },1000); </script>
而後咱們看一下輸出結果。測試
看起來結果這沒有什麼呀,每次只是延時1ms而已,對於我來講,沒有什麼影響。spa
世界不可能永遠都是平靜的,當資源變成了稀缺,競爭加重的時候,一切都不是那麼美好了。code
非活動Tabblog |
非活動Tab,就是非當前Tab。瀏覽器有一種機制,就是優先保證當前Tab資源優先使用。咱們能夠換一種方式說。ip
活動Tab,至關於太子,其餘的都是一些阿哥。若是太子吃肉,阿哥能夠也乾糧。太子連乾糧也吃的話,阿哥們只能喝湯了,仍是一些阿哥搶着喝湯。沒辦法,資源就是這麼多,不是我不想給你。資源
這個例子也很簡單,就是活動Tab幹一件很是消耗CPU的事情,而後咱們過一會去觀察咱們剛纔的Tab。
for(var i = 0;i!=100000;++i){ console.log(i); }
此次結果就不是那樣簡單了,看看,這是多麼不靠譜的定時呀。
活動Tab |
其實你也許說這不能反應問題,若是非活動頁面若是作耗時CPU,活動頁面定時同樣不許?我就作了這麼一個測試。結果是這樣的
活動Tab就是不通常呀,延時只是稍微變慢了一點。