В чем смысл полифилов в HTML5?
Что означает полифилл в HTML5? Я видел это слово во многих сайтах о HTML5, например HTML5-кроссбраузерные полифиллы.
Итак, здесь мы собираем все прокладки, резервные копии и полифиллы чтобы внедрить функциональность HTML5 в браузеры, которые этого не делают поддерживает их.
Я на самом деле не понял, что такое смысл полифилл.
Это новый метод HTML5 или библиотека JavaScript? Я никогда слышал это слово до HTML5.
и в чем разница между проставками, откаты, и полифиллы?
4 ответа:
polyfill-это резервный вариант браузера, выполненный на JavaScript, который позволяет функциональности, которую вы ожидаете работать в современных браузерах, работать в старых браузерах, например, поддерживать canvas (функция HTML5) в старых браузерах.
Это своего рода метод HTML5, поскольку он используется в сочетании с HTML5, но он не является частью HTML5, и вы можете иметь полифиллы без HTML5 (например, для поддержки методов CSS3, которые вы хотите).
во-первых, давайте выясним, что такое полифил: полифил не является частью стандарта HTML5. Полифилл также не ограничен Javascript, хотя вы часто видите, что в этих контекстах упоминаются полифиллы.
термин polyfill сам по себе относится к некоторому коду, который "позволяет вам иметь определенную функциональность, которую вы ожидаете в текущих или "современных" браузерах, а также работать в других браузерах, которые не имеют встроенной поддержки этой функциональности. "
источник и пример polyfill здесь:
http://www.programmerinterview.com/index.php/html5/html5-polyfill/
polyfill-это фрагмент кода (или плагин), который предоставляет технологию, которую вы, разработчик, ожидаете, что браузер предоставит изначально.
полифилл-это прокладка, которая заменяет исходный вызов с вызовом на прокладку.
например, скажем, вы хотите использовать навигатор.объект mediaDevices, но не все браузеры поддерживают это. Вы можете себе представить библиотеку, которая предоставляет прокладку, которую вы можете использовать следующим образом:
<script src="js/MediaShim.js"></script> <script> MediaShim.mediaDevices.getUserMedia(...); </script>
в этом случае вы явно вызываете оболочку вместо использования исходного объекта или метода. Полифилл, с другой стороны, заменяет объекты и методы исходный объект.
например:
<script src="js/adapter.js"></script> <script> navigator.mediaDevices.getUserMedia(...); </script>
в вашем коде это выглядит так, как будто вы используете стандартный навигатор.объект mediaDevices. Но на самом деле, полифилл (адаптер.js в Примере) заменил этот объект на свой собственный.
тот, который он заменил его, - это прокладка. Это позволит определить, поддерживается ли функция изначально и использовать ее, если она есть, или она будет работать вокруг нее с помощью других API, если это не так.
таким образом, полифилл является своего рода" прозрачная " прокладка. И это то, что Реми Шарп (который придумал этот термин) имел в виду, говоря "Если вы удалили скрипт polyfill, ваш код будет продолжать работать, без каких-либо изменений, необходимых, несмотря на удаление polyfill".