博客逐步迁移到,独立博客,原文地址,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就是不通常呀,延时只是稍微变慢了一点。