17/10/2011 - Los Web Workers son una de las novedades que nos traerá HTML5. Consisten en un API para poner en marcha procesos de programación compleja en Javascript que se ejecutan de manera separada del hilo normal de ejecución de Javascript del navegador. Por decirlo con la palabra inglesa, los Web Workers se ejecutan en el "background", lo que ayuda a mejorar la carga en las aplicaciones web más exigentes.
Para quien quiera ver un demo de cómo los Web Workers podrán ayudar, se puede acceder al "Internet Explorer Test Drive" que están publicando desde Microsoft en la página
Web Worker Fountain. En ese enlace podremos ver un efecto especial que emula el comportamiento de una fuente de agua y donde se ha utilizado Javascript, ejecutado en background por medio de los Web Workers, para calcular el comportamiento de los chorros de agua.
La fuente que nos muestran al principio va implementando varios tipos de chorros y la verdad es que queda un efecto bastante conseguido. Además, podemos configurar nosotros mismos varios parámetros para modificar sustancialmente el efecto. La demo funciona perfectamente en IE9, Firefox y Chrome y además tiene un contador de los "frames por segundo" que el navegador es capaz de producir, lo que nos da una idea del rendimiento que cada navegador tiene con esta nueva tecnología del HTML5.
La ventaja de los Web Workers con respecto a la ejecución tradicional de scripts Javascript, además del rendimiento mejorado, es que nunca se paraliza la interfaz de usuario de la página web. Quizás habremos experimentado algunas veces que un script Javascript bloquea el uso del navegador cuando se procesa por mucho tiempo seguido, pues con Web Workers no pasaría, ya que son capaces de ejecutar diversos hilos al mismo tiempo.
Para demostrar la ventajas de los Web Workers Microsoft ha realizado un
test de rendimiento Javascript "test262", colocando varios procesos en ejecución tanto en Javascript tradicional como con hilos en background vía HTML5 Web Workers.
Internet Explorer 10 Platform Preview dispone de un panel de control de Web Workers a través de las Developer Tools, que se puede acceder con la tecla rápida F12.