Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我们使用Paul Irish';s请求动画帧垫片?_Javascript_Html_Requestanimationframe - Fatal编程技术网

Javascript 我们使用Paul Irish';s请求动画帧垫片?

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

Paul Irish有一个帖子叫。保罗是个聪明人,我只是想了解这个想法的应用范围

他说要制作HTML5动画,您应该使用如下所示的requestAnimationFrame垫片:

// 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,它为下一帧执行调度回调。