Polyfill – kod, który implementuje nową funkcję, która nie jest obsługiwana w jakiejś przeglądarce internetowej, ale jest obsłużona w innej. Najczęściej odnosi się do biblioteki JavaScript, która implementuje elementy nowego standardu internetowego (np. HTML5, ES6). Czyli jest to kod, który dodaje zgodność wsteczną dla starych przeglądarek i ma pomóc we wdrażaniu nowych standardów (nowe funkcje można używać zanim zostaną zaimplementowane)[1].

Przykładem polyfill może być zaimplementowanie metody indexOf dla obiektów Array[2]. Funkcja ta nie jest dostępna w starych wersjach Internet Explorera i żeby witryna działa w starym IE, należy dodać dla niej polyfill.

Definicja edytuj

Termin ten jest neologizmem wymyślonym przez Remy'ego Sharpa w trakcie pisania książki „Wprowadzenie do HTML5” w 2009 roku[1]. Szukał wówczas słowa oznaczającego „replikację API za pomocą JavaScript (lub Flasha itp.), jeśli przeglądarka nie ma go natywnie”. Co prawda istniał już wówczas termin shim, ale według Sharpa był on związany z obejściami istniejących problemów. Jako przykład podaje wstawianie shim.gif do tabelki, żeby puste komórki były widoczne.

Rozróżnienie, które czyni Sharp, to[3]:

To, co czyni polyfill odmiennym od innych technik, jakie już mamy (jak shim), jest to, że jeśli usuniesz polyfill, to wszystko nadal powinno działać bez żadnych zmian, pomimo usunięcia polyfill.

Jak mówi autor, termin pochodzi od szpachlówki marki Polyfilla, którą można użyć do wypełnienia luk i szczelin w ścianie. Ma to być również zbitki słów poly (na wiele sposobów) oraz fill (wypełnienie).

Od czasu ukucia go w 2009 słowo zyskało znacząco na popularności. Autor twierdzi, że przyczyniło się do tego głównie użycie go przez Paula Irisha oraz w dokumentacji Modernizr[1][4].

Zobacz też edytuj

Przypisy edytuj

  1. a b c What is a Polyfill? [online], remysharp.com [dostęp 2020-01-01].
  2. Array.prototype.indexOf() [online], MDN Web Docs [dostęp 2020-01-01] (ang.).
  3. Remy. Sharp, Introducing HTML5, wyd. 2nd ed, Berkeley, CA: New Riders, 2012, s. 277, ISBN 978-0-321-78442-1, OCLC 751739412 [dostęp 2020-01-01].
  4. Html5 cross browser polyfills [online], Modernizr - GitHub, 28 września 2010 [dostęp 2020-01-01] [zarchiwizowane z adresu 2010-09-28].

Linki zewnętrzne edytuj