Подтвердить что ты не робот

Для каких браузеров мы используем Paul Irish requestAnimationFrame shim?

Paul Irish имеет сообщение под названием requestAnimationFrame для смарт-анимации. Теперь Пол - умный парень, и я просто пытаюсь понять сферу применения этой идеи.

Он говорит, что нужно делать анимацию 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.

Это понятно. Мы можем применить это в JSFiddle как это, и результаты неплохие.

Но если я вырву из функции слоя прокладки, то в Chrome 31 и Firefox 24 он отлично работает.

Итак, если я смотрю на совместимость для функции RequestAnimationFrame - похоже, что браузеры имели эту функцию в течение очень долгого времени.

Мой вопрос - Для каких браузеров мы используем Paul Irish requestAnimationFrame shim?. Вы можете копировать его, и он по-прежнему работает, и похоже, что браузеры имели это в течение длительного времени.

4b9b3361

Ответ 1

Я боюсь, что polyfill/shim будет необходимо, если вы хотите поддерживать старые браузеры.

Как вы отмечаете, он работает с последними Firefox и Chrome без префикса. Firefox также имеет новую политику, а не префикс любой будущей технологии, так что, возможно, тоже хорошо, и есть , чтобы сделать то же самое для Chrome.

Но если вы запускаете более старые браузеры (и это удивительно большая группа пользователей), необходимо polyfill.

Graph

Источник

Здесь мы видим IE9 сверху, а затем версии IE8, 10 и более старые версии Chrome (хотя это включает весь последний год, в котором объясняется часть Chrome, а также IE9 и IE10). Вариации могут применяться к регионам, поэтому проверьте географическую область, в которой, по вашему мнению, актуальна ваша заявка.

Ответ 2

Вам понадобится polyfill для IE8, IE9, Android Browser и куча старых вещей, на которые вы должны были бы принять решение.

Здесь текущая поддержка rAF благодаря caniuse.com:

enter image description here

Все, что связано с желтым флагом в углу, использует префикс, поэтому ему нужна прокладка. Все, что требуется красным, требует резервной копии setTimeout.

Но, чтобы понять ваш основной момент... скоро, да, скоро polyfill будет намного меньше. И, надеюсь, не слишком долго отныне мы можем убить его и использовать rAF напрямую.