更快的异步执行(setTimeout多浏览器)
假如要异步执行一个函数,我们最先想到的方法确定会是setTimeout
例如:setTimeout(function( /* 1s后做点什么 */){},1000}
那假如说要最快速地异步执行一个函数呢?
是否会是:
1 setTimeout(function( /* 尽快做点什么 */){},0}
惋惜的是,浏览器为了避开setTimeout嵌套可能出现卡死ui线程的状况,为setTimeout设置了最小的执行时间间隔,不同浏览器的最小执行时间间隔都不一样。chrome下测试 setTimeout 0 的实际执行时间间隔也许在12ms左右。
那么假如想最快地异步执行一个函数,有没有什么可以提速的方法呢?
先来看看浏览器端,有哪些常用的异步执行方法
setImmediate:该方法去实现比setTimeout 0 更快的异步执行,执行时间更接近0ms,但是只有IE/node支持。
requestAnimationFrame:做动画循环的时候常常会用到这个方法,该方法只会在浏览器刷新ui的时候执行,刷新ui的频率最大一般为60fps,所以r ...
附件列表