Polyfill

Un polyfill (o «relleno» en español) en programación se refiere a una pieza de código (generalmente en JavaScript) que proporciona una funcionalidad que no está nativamente soportada por el navegador web en el que se está ejecutando. Los polyfills se utilizan para llenar las brechas de compatibilidad entre diferentes navegadores, permitiendo que el código funcione correctamente en aquellos navegadores que no admiten ciertas características o API.

Aquí hay algunos ejemplo que son:

  1. HTML5 Shiv – En las versiones de IE anteriores a la 9, los elementos HTML desconocidos como <section> y <nav>se analizarían como elementos vacíos, rompiendo la estructura de anidamiento de la página y haciendo que esos elementos fueran imposibles de diseñar usando CSS . Uno de los polyfills más utilizados, html5shiv, explota otra peculiaridad de IE para evitar este error: llamar ‘document.createElement(«tagname»)’ a cada uno de los nuevos elementos HTML5, lo que hace que IE los analice correctamente.
  2. Selectivizr – Selectivizr de Keith Clark es un polyfill popular que hace que muchos selectores CSS3 funcionen en IE 8 y versiones anteriores. Lee las hojas de estilo de la página en busca de una serie de selectores CSS3 conocidos, luego usa una biblioteca de selectores de JavaScript para consultar el documento en busca de elementos que coincidan con esos selectores, aplicando los estilos directamente a esos elementos.
  3. Flexie – Posiblemente una de las características más esperadas de CSS3, Flexible Box Layout (también conocido como Flexbox) promete ser una herramienta extremadamente poderosa para diseñar elementos de interfaz. Los motores WebKit y Mozilla han soportado un borrador preliminar de sintaxis durante años. Flexie implementa soporte para esa misma sintaxis en IE y Opera.
  4. CSS3 PIE – Busca las propiedades CSS3 no admitidas en elementos específicos y representa esas propiedades utilizando VML para IE 6–8 y SVG para IE 9. Su representación es casi indistinguible de las implementaciones de navegadores nativos y maneja bien la modificación dinámica de DOM.
  5. JSON 2 – Dado que json2.js ahora implementa funciones nativas de navegadores más nuevos en navegadores más antiguos, se ha convertido en un polyfill en lugar de una biblioteca.

En resumen, los polyfills son una técnica utilizada en programación web para brindar compatibilidad con características y estándares web en navegadores que no las admiten nativamente.