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

Походження терміна

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

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

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

Призначення Поліфіли дозволяють виправляти помилки в конкретному 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.

Примітки

Посилання (англ.) HTML5 Polyfill List By Feature (англ.)