Javascript 我们使用Paul Irish';s请求动画帧垫片?
Paul Irish有一个帖子叫。保罗是个聪明人,我只是想了解这个想法的应用范围 他说要制作HTML5动画,您应该使用如下所示的requestAnimationFrame垫片:Javascript 我们使用Paul Irish';s请求动画帧垫片?,javascript,html,requestanimationframe,Javascript,Html,Requestanimationframe,Paul Irish有一个帖子叫。保罗是个聪明人,我只是想了解这个想法的应用范围 他说要制作HTML5动画,您应该使用如下所示的requestAnimationFrame垫片: // shim layer with setTimeout fallback window.requestAnimFrame = (function(){ return window.requestAnimationFrame || window.webkitRequestAnimation
// shim layer with setTimeout fallback
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function( callback ){
window.setTimeout(callback, 1000 / 60);
};
})();
// usage:
// instead of setInterval(render, 16) ....
(function animloop(){
requestAnimFrame(animloop);
render();
})();
// place the rAF *before* the render() to assure as close to
// 60fps with the setTimeout fallback.
这是可以理解的。而且效果相当好
但是,在Chrome 31和Firefox 24中,它运行良好
因此,如果我看一下-它看起来像浏览器已经有这个功能很长时间了
我的问题是-对于哪些浏览器我们使用Paul Irish的requestAnimationFrame shim?您可以将其删除,但它仍然有效,而且看起来浏览器已经使用它很长时间了 如果您想支持较旧的浏览器,恐怕需要使用polyfill/shim 正如您所指出的,它可以与最新的Firefox和Chrome一起使用,而不需要前缀。Firefox也有一个未来的技术,所以这可能也是一件好事,Chrome也有一个类似的方法 但是,如果您运行的是较旧的浏览器(用户数量惊人地多),则polyfill是必要的
在这里,我们看到IE9在顶部,接着是IE8、10,然后是更老的Chrome版本(尽管这包括去年的全部内容,解释了Chrome部分以及IE9和IE10)。变化可能适用于区域,因此测试您认为您的应用程序相关的地理区域。您需要用于IE8、IE9、Android浏览器的polyfill,以及一些您必须做出判断的旧东西 以下是目前对皇家空军的支持,感谢caniuse.com: 任何角落有黄色标志的东西都会使用前缀,因此需要垫片。任何红色的东西都需要设置超时回退
但是,为了抓住你的核心点。。。很快,是的,很快,polyfill将变得更小。希望不久之后我们可以杀死它并直接使用皇家空军。对于您刚刚链接到的列表中的那些。特别是对于IE9,切勿使用垫片。它只是将执行延迟1000/60。raf的唯一目的是避免过多的dom更新。最好使用真正的raf polyfill,它为下一帧执行调度回调。