Todos sabemos que el navegador ejecuta código js en un solo hilo. Cuando se ejecuta el paso de la página, la página no puede responder a nada más hasta que finalice el paso. Los WebWorkers introducidos aquí pueden cambiar todo.
WebWorkers son códigos js que se ejecutan en segundo plano, independientemente de otros scripts y no afectarán el rendimiento de la página. Podemos seguir haciendo lo que queramos: hacer clic, seleccionar contenido, etc., mientras los WebWorkers se ejecutan en segundo plano.
Los trabajadores web son compatibles con todos los principales navegadores excepto Internet Explorer.
El primer paso: generar trabajadores.Llame al constructor Worker() y especifique el URI de un script que se ejecutará en el subproceso de trabajo. Por ejemplo, la página actual especifica que el script ejecutado por el subproceso de trabajo es script-worker.js.
var myWorker = nuevo trabajador(script-worker.js);
En script-worker.js podemos ejecutar código adicional, y la ejecución de este código no afectará a la página para que haga otras cosas que desee hacer, lo cual suena genial.
Paso 2: pasa los datos.La página puede interactuar con el trabajador para transferir datos, de modo que el trabajador pueda calcular en silencio sin afectar la capacidad de la página para hacer cosas significativas. Luego, dígale a la página que use los datos.
//[Código de página principal]myWorker.postMessage(data-from-mainpage);//[código de trabajador]onmessage = function (oEvent) { console.log(Los datos enviados desde la página principal son: +oEvent.data)) ; };
Lo anterior es la situación de [la página principal envía datos al script del trabajador], sí, viste el postMessage muy amigable, está bien, me gusta esto.
//[Código de la página principal] myWorker.onmessage = function (oEvent) { console.log(Los datos enviados por el script del trabajador son: +oEvent.data) } //[Código del trabajador]postMessage(data-from-) página principal);
Lo anterior es la situación en la que [el script de trabajo envía datos a la página principal]. Sigue siendo muy simple, pero estas son solo API. La clave es que el uso inteligente es beneficioso.
Además, puede haber errores en la ejecución del trabajador y la página principal pasa:
myWorker.onerror=function(oEvent){};
Puede monitorear los errores de los trabajadores.
Paso 3: Puntos importantes.El hilo de trabajo puede realizar tareas sin interferir con la interfaz de usuario. El código JavaScript ejecutado está completamente en otro alcance y no comparte el alcance con el código de la página web actual.
El método importScripts() se proporciona en el ámbito global de Worker, que recibe una o más URL que apuntan a archivos JavaScript. El proceso de carga se realiza de forma asincrónica.
importScripts() solo tendrá efecto si proporciona un URI absoluto y el proceso de ejecución también es asincrónico.
Cuando creamos el objeto WebWorkers, continuará escuchando mensajes (incluso después de que se complete el script externo) hasta que finalice. Utilice el método myWorker.terminate() para finalizar WebWorkers y liberar los recursos del navegador/computadora.
Paso 4: Limitaciones importantes.1. No se puede acceder a nodos DOM, variables globales o funciones globales, no se pueden llamar funciones como alerta () o confirmar, y no se puede acceder a variables globales del navegador como ventana y documento;
2. Sin embargo, Javascript en Web Worker aún puede usar funciones como setTimeout() y setInterval(), y también puede usar el objeto XMLHttpRequest para la comunicación Ajax.
Lo anterior es el contenido completo de este artículo. Espero que sea útil para el estudio de todos. También espero que todos apoyen VeVb Wulin Network.