不過,真的這樣簡單嗎?要知道javascript是單線程的,當要處理的事務比較多時,setTimeout的執行時間根本得不到保證,這樣在不一樣性能的瀏覽器上就會有不一樣的表現了。這時咱們能夠利用時間差來控制循環體的執行時間。
javascript
var _last = new Date().getTime();
java
setTimeout(function(){
瀏覽器
var _now = new Date().getTime();
性能
if(_now - _last > delay){
spa
_last = _now;
線程
//循環體…
事務
}
ip
setTimeout(arguments.callee, 10);
get
},10);io