Antes de nada debemos preguntarnos, ¿qué es un polyfill? Un polyfill es un trozo de código (un plugin) que proporciona la tecnología que el desarrollador espera obtener del navegador de forma nativa. En definitiva se trata de hacer que aquellos navegadores que no son compatibles con una característica nueva, la incorporen a través de fallbacks, es decir de código, en su mayor medida javascript, que se encargue de realizar dicha funcionalidad.
Por ejemplo si queremos utilizar las nuevas etiquetas semánticas de HTML 5, debemos utilizar un polyfill que se encargue de hacer dichas etiquetas compatibles con versiones antiguas de Internet Explorer. El más utilizado es html5shiv.
O si por ejemplo queremos hacer que todos los navegadores hagan uso del nuevo atributo placeholder, que permite mostrar texto cuando dichos campos están vacíos. Entonces tan solo debemos buscar uno de los muchos polyfills que existen. O incluso crearlo nosotros mismos. Si optas por crearlo tu mismo, lo primero es ver si merece la pena comparando las versiones actuales para saber que podemos aportar. Y utilizar siempre detección de características. Es decir con HTML 5 ya nos nos basamos en detección de versiones de navegadores sino en características, es decir, si el navegador en concreto, sea la versión que sea, es capaz de realizar lo que se le pide. Para en caso correcto hacerlo de forma nativa.
Una de las ventajas de utilizar polyfills como desarrolladores es que nos olvidamos de los problemas y carencias de navegadores antiguos, y así podemos desarrollar páginas web centrándonos en los nuevos estándares y sacando el máximo provecho.
Si queremos utilizar propiedades de CSS3 como border-radius, box-shadow, border-image, rgba, gradientes, … Para así olvidarnos de tener que colocar imágenes en Internet Explorer, en el caso de bordes redondeados. Entonces es de recomendado uso utilizar CSS3 PIE. Obteniendo soporte para Internet Explorer 6, 7 y 8.
Volviendo al tema de entrada. El poly de polyfill, viene porque en algunas ocasiones para hacer funcional una característica se requiere de una solución cuando esta disponible cierta tecnología externa como podría ser flash o silverlight, y de otra solución cuando esta tecnología no esta.
En la mayoría de casos debemos utilizar polyfills porque Internet Explorer no se actualiza para corregir sus carencias. Concretamente se cierra en versiones, las cuales mantiene hasta que sale una nueva versión, abandonando así la anterior y no permitiendo la actualización a la nueva versión, a no ser que cumplamos los requisitos necesarios (como el sistema operativo necesario). Si dicho navegador se actualizara como Firefox o Chrome estoy seguro de que nos ahorraría mucho tiempo.
Para finalizar, un enlace con una recopilación de polyfills para hacer más fácil el tránsito hacia los nuevos estándares.
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
Comentarios