JS的定時到底有多不許

博客逐步遷移到,獨立博客,原文地址,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>

  

而後咱們看一下輸出結果。測試

 

JS輸出結果

看起來結果這沒有什麼呀,每次只是延時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結果

活動Tab就是不通常呀,延時只是稍微變慢了一點。

相關文章
相關標籤/搜索