Поліфіл

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

Поліфіл (англ. 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. (англ.)
  2. Шарп, Реми. What is a polyfill?. (англ.)

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