不过,真的这样简单吗?要知道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