Поліфіл

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Поліфіл (англ. Polyfill) у вебпрограмуванні це код, який реалізує деякий функціонал, що не підтримується у якихось версіях веббраузерів за умовчанням. Зазвичай це бібліотека JavaScript, яка реалізує підтримку вебстандарту HTML5 у версіях браузерів, де за умовчанням підтримка цих функцій частково або повністю відсутня. Це забезпечує більш-менш однакове відображення вебсторінок в різних браузерах[1].

Походження терміну[ред. | ред. код]

Термін був придуманий Ремі Шарпом (англ. Remy Sharp) 2009 року під час роботи над книгою «Введення в HTML5», як влучне слово, з яким можна асоціювати моделювання API з використанням JavaScript (або Flash, або чого-небудь іншого), для веббраузера, у якого не він передбачений спочатку.

«Poly-» (від грец. Polloi — багато) говорить про притягнення будь-якого числа технологій, тобто з поставленим завданням можна впоратися не тільки за допомогою JavaScript, а друга частина «-fill» (англ. fill — наповнювати, заповнювати) передбачає заповнення «діри» браузера, в якій і повинна бути реалізована таким чином технологія.

Крім того, у будівельній галузі відома шпаклівка «Polyfilla». На думку автора терміна, асоціація з вирівнюванням тріщин та дірок в стінах цілком підходить для візуалізації того, як поліфіли у вебпрограмуванні «ремонтують» браузер[2].

Призначення[ред. | ред. код]

Поліфіли дозволяють виправляти помилки в конкретному API або додавати в браузер функціонал, який за умовчанням частково або повністю їм не підтримується. Поліфіли не створюють зайвих залежностей і можуть бути легко видалені, коли вони більше не потрібні. Їх використання добре зарекомендувало себе і широко застосовується в тих випадках, коли необхідно підвищити функціональність старих (а іноді і нових) браузерів до бажаного рівня.

Приклади[ред. | ред. код]

HTML5 Shiv
Забезпечує відображення елементів HTML5 в Internet Explorer 6-8, Safari 4.x, Firefox 3.x. та ін. і дозволяє оформлювати їх належним чином за допомогою CSS.
Flexie
Забезпечує кросбраузерну підтримку Flexible Box Module, яка дозволяє верстати сторінки зі складною компонуванням блоків швидше, легше і зручніше, ніж з використанням плаваючих елементів.
Webshims Lib
Бібліотека, після підключення якої, при перегляді вебсторінок в браузері IE 9-ї версії і нижче, починають працювати елементи форм HTML5 таких типів як date range, color і інші.
Selectivizr
Використовується для обробки CSS3 селекторів в IE 8-ї версії і нижче в поєднанні з JavaScript бібліотеками, такими як jQuery або MooTools.
CSS3 PIE
PIE (Progressive Internet Explorer) реалізує деякі з найбільш популярних властивостей CSS3 в веббраузерах IE.
es5shim
Забезпечує підтримку в старих браузерах IE практично всі функції, які були затверджені в специфікації ECMAScript 5.
MediaElement.js
Забезпечує підтримку у всіх браузерах, в тому числі мобільних, відтворення аудіо- та відеоконтенту. При використанні цього поліфіла, навіть в тих браузерах, які не розуміють розмітки HTML5, відображається альтернативний варіант плеєра, використовує Flash.
FlashCanvas
Дозволяє старих версій Internet Explorer працювати з Canvas (HTML). Один з небагатьох полифилов, який представлений, в тому числі, розширеної платною версією.
Storage Polyfill
В старих версіях браузерів, де відсутня підтримка Web Storage, дозволяє зберегти функціональність, використовуючи Cookie.

Примітки[ред. | ред. код]

  1. Modernizr Documentation. Архів оригіналу за 9 листопада 2017. Процитовано 19 січня 2018. (англ.)
  2. Шарп, Реми. What is a polyfill?. Архів оригіналу за 27 травня 2018. Процитовано 19 січня 2018. (англ.)

Посилання[ред. | ред. код]