Cuando escuchamos la palabra HTML5 pensamos en la actualización de HTML o en las nuevas capacidades como video, audio, canvas, etc. Pero ademas HTML5 es un nombre de marketing para englobar 3 tecnologias, HTML5, CSS3 y nuevas capacidades de Javascript.

¿Alguna vez se les ocurrió intentar hacer que javascript ejecutara 2 cosas a la vez?, javascript no podia ejecutar 2 o mas cosas a al vez, pero gracias a una actualización ahora lo puede hacer y eso se llama Web Workers, ahora podemos ejecutar tantos scripts como podamos de una manera muy sencilla.

Declarar un Worker

Solo hay que crear un worker como si fuera un objeto llamado WORKER.

var worker = new Worker('worker.js');

Pero ademas, tenemos que decirle el nombre del archivo que va a ejecutar, en este caso es WORKER.JS, con esto ya tenemos un worker listo para que ejecute nuestro script.

 

Enviar un mensaje al Worker

Los WORKERS aceptan tambien mensajes, podemos enviarles variables o valores directamente.

worker.postMessage("Información para el worker");

Simplemente devemos poner el nombre.postMessage(valor) y listo.

 

Recibir un mensaje en el Worker

Es obvio que al poder enviar información, debemos poder recibirla para procesarla, entonces veamos el código para recibirla.

worker.onmessage = function (evt) {
        // evt.data es el valor devuelto por el Worker
        alert(evt.data);
}

En la variable EVT tenemos la información que devolvemos del WORKER, son los datos que devuelven los scripts que procesamos.

 

Uso de errores de un Worker

Ademas, no todo puede salir bien siempre, tambien existe la posibilidad de que se genere un error, entonces devemos devolver lo que sucedió para saber que lo ocasiono.

worker.onerror = function (evt) {
        alert(evt.data);
}

Es muy facil, la misma variable EVT nos puede devolver el error tambien si es que ocurrió alguno.

 

Cerrar o parar el Worker

Para poder cerrar o terminar el proceso de un WORKER solo hay que utilizar esta linea de código.

worker.terminate();

Esto terminara el WORKER y dejara de funcionar, obviamente hay que sustituir WORKER por el nombre del que queramos terminar.

Con esto es mas que suficiente para empezar a usar los WORKERS, ahora podemos ejecutar tantos scripts como podamos al mismo tiempo y sin alterar nada.

Luis Antonio Gomez Prieto

Luis Antonio Gomez Prieto

Co-founder and Fullstack developer at @wavecodela

2 comentarios en “Como utilizar Web Workers de Javascript

  1. Bastante interesante Workers, lamentablemente los actuales motores de javascript así como los navegadores que soportan estos, aun no tiene la capacidad para interpretar javascript a nivel multiproceso. Pero seguro en un par de años, si no es que menos, ya sera toda una realidad, así verdaderamente hacer el cloud computing.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Cerrar