Pour quels navigateurs utilisons-nous la requête de Paul IrishAnimationFrame?

Paul Irish a un message appelé demandeAnimationFrame pour Smart Animating . Maintenant, Paul est un homme intelligent – et j'essaie simplement de comprendre la portée de l'application de cette idée.

Il dit de faire de l'animation HTML5: vous devriez utiliser une demandeAnimationFrame comme cette:

// 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. 

Ce qui est compréhensible. Nous pouvons appliquer cela dans un JSFiddle comme celui-ci et les résultats sont assez bons.

Mais si je déchire la fonction Shim layer , alors dans Chrome 31 et Firefox 24 ça marche bien.

Donc, si je regarde la compatibilité pour la fonction RequestAnimationFrame – il semble que les navigateurs ont eu cette fonction pendant très longtemps.

Ma question est – Pour quels navigateurs utilisons-nous la requête de Paul IrishAnimationFrame? Vous pouvez l'arracher et cela fonctionne toujours, et il semble que les navigateurs l'ont déjà longtemps.

Je crains que le polyfill / shim ne soit nécessaire si vous souhaitez supporter d'anciens navigateurs.

Comme vous l'avez souligné, cela fonctionne avec les derniers Firefox et Chrome sans préfixe. Firefox a également une nouvelle politique pour ne pas préciser de technologie future, ce qui est peut-être une bonne chose et il y a une proposition de faire de même pour Chrome.

Mais si vous utilisez d'anciens navigateurs (et un groupe étonnamment grand d' utilisateurs ), le polyfill est nécessaire.

Graphique

La source

Ici, nous voyons IE9 en haut, suivi des versions IE8, 10 et plus anciennes de Chrome (bien que cela inclue toute l'année dernière, ce qui explique la partie Chrome et IE9 vs IE10). Des variations peuvent s'appliquer aux régions, afin de vérifier la zone géographique où vous pensez que votre application est pertinente.

Vous avez besoin du polyfill pour IE8, IE9, Android Browser, et un tas de choses plus anciennes que vous devriez faire un appel de jugement.

Voici le support actuel pour rAF grâce à caniuse.com:

Entrez la description de l'image ici

Tout ce qui a un drapeau jaune dans le coin utilise un préfixe, donc il a besoin de la cale. Tout le rouge nécessite le repli setTimeout.

Mais, pour atteindre votre point central … bientôt, oui, bientôt, le polyfill sera beaucoup plus petit. Et nous espérons que peu de temps maintenant, nous pouvons le tuer et utiliser directement le RAF.