Webworkers
Webworker
● Un “webworker” es una rutina en javascript
que trabaja en el background del navegador
sin perjudicar el desempeño del mismo.
● El script puede ejecutar cualquier actividad
en paralelo al “webworker”.
Webworker
● IE 10, actual 11
● Chrome 4, actual 42
● Firefox 3.5, actual 37
● Safari 4, actual 8
● Opera 11.5, actual 27
Webworkers
Ejemplo
Webworkers
● Verificar que el navegador soporte
webworkers:
if(typeof(Worker) !== "undefined") {
// Soporta webworkers
} else {
// Navegador chafa...
}
Webworkers
● Creamos una rutina javaScript:
var i = 0;
function contador() {
i = i + 1;
postMessage(i);
setTimeout("contador()",500);
}
contador();
Webworkers
● La función postMessage() manda un
mensaje al background.
● Nota: Los webworkers se utilizan
preferentemente en programas que
requieran muchos recursos del CPU.
Webworkers
● Los objetos webworkers se crean desde una
página html.
if(typeof(w) == "undefined") {
w = new Worker("[Link]");
}
Webworkers
● Podemos recibir mensajes del background
con el evento “onmessage”:
[Link] = function(event){
[Link]("result").innerHTML =
[Link];
};
Webworkers
● El resultado es almacenado en “event.
data”.
● El webworker seguirá ejecutándose aunque
el script de la página haya terminado.
● Para detenerlo hay que utilizar:
○ [Link]();
Webworkers
● Los webworkers deben de ser escritos en
archivos externos js.