不过,真的这样简单吗?要知道javascript是单线程的,当要处理的事务比较多时,setTimeout的执行时间根本得不到保证,这样在不同性能的浏览器上就会有不同的表现了。这时我们可以利用时间差来控制循环体的执行时间。
var _last = new Date().getTime();
setTimeout(function(){
var _now = new Date().getTime();
if(_now - _last > delay){
_last = _now;
//循环体…
}
setTimeout(arguments.callee, 10);
},10);
转载于:https://my.oschina.net/u/259316/blog/193930