Galería de mapas mentales trabajador web
Comprensión y uso de los trabajadores web. Los trabajadores web son un conjunto de API proporcionadas y estandarizadas por HTML5. Crea un entorno de ejecución de subprocesos múltiples para JavaScript.
Editado a las 2024-03-08 16:53:42,プロジェクトマネジメントとは、専門的な知識、スキル、ツール、方法論をプロジェクト活動に適用し、限られたリソースの制約の中で、プロジェクトが設定された要件や期待を達成、またはそれ以上にできるようにするプロセスである。 この図は、プロジェクトマネジメントプロセスの8つの構成要素を包括的に示したものであり、一般的なテンプレートとして利用することができる。
プロジェクトマネジメントとは、専門的な知識、スキル、ツール、方法論をプロジェクト活動に適用し、限られたリソースの制約の中で、プロジェクトが設定された要件や期待を達成、またはそれ以上にできるようにするプロセスである。 この図は、プロジェクトマネジメントプロセスの8つの構成要素を包括的に示したものであり、一般的なテンプレートとして利用することができる。
世界的に著名な科学者、航空力学者、中国有人宇宙飛行の創始者、中国科学院および中国工程院の院士、「二元一星勲章」受章者、「中国宇宙飛行の父」、「中国ミサイルの父」、「中国自動制御の父」、「ロケットの王」として知られる。 中国宇宙の父」、「中国ミサイルの父」、「中国自動制御の父」、「ロケット王」として知られる。
プロジェクトマネジメントとは、専門的な知識、スキル、ツール、方法論をプロジェクト活動に適用し、限られたリソースの制約の中で、プロジェクトが設定された要件や期待を達成、またはそれ以上にできるようにするプロセスである。 この図は、プロジェクトマネジメントプロセスの8つの構成要素を包括的に示したものであり、一般的なテンプレートとして利用することができる。
プロジェクトマネジメントとは、専門的な知識、スキル、ツール、方法論をプロジェクト活動に適用し、限られたリソースの制約の中で、プロジェクトが設定された要件や期待を達成、またはそれ以上にできるようにするプロセスである。 この図は、プロジェクトマネジメントプロセスの8つの構成要素を包括的に示したものであり、一般的なテンプレートとして利用することができる。
世界的に著名な科学者、航空力学者、中国有人宇宙飛行の創始者、中国科学院および中国工程院の院士、「二元一星勲章」受章者、「中国宇宙飛行の父」、「中国ミサイルの父」、「中国自動制御の父」、「ロケットの王」として知られる。 中国宇宙の父」、「中国ミサイルの父」、「中国自動制御の父」、「ロケット王」として知られる。
trabajador web
El nacimiento del trabajador web
Como todos sabemos, js fue diseñado originalmente para ejecutarse en el navegador.
Para evitar que varios subprocesos operen el DOM al mismo tiempo y provoquen conflictos de representación, el ejecutor js está diseñado para ser de un solo subproceso.
Con el desarrollo de la tecnología front-end, cuando se encuentran escenarios que requieren muchos cálculos, los subprocesos js a menudo se bloquean durante mucho tiempo e incluso provocan que la página se congele, lo que afecta la experiencia del usuario.
Más información sobre los trabajadores web
¿Qué es un trabajador web?
Web Workers son parte del estándar HTML5
Define un conjunto de API que nos permiten abrir un nuevo hilo de trabajo fuera del hilo js principal y ejecutar un script js en él.
Brinda a los desarrolladores la capacidad de usar js para operar subprocesos múltiples
La interfaz de usuario de la aplicación web sigue respondiendo incluso si el script se ejecuta durante mucho tiempo.
Ventajas de los trabajadores web
Mejore el rendimiento de la página: realice algunas operaciones que requieren mucho tiempo o cálculos en el hilo de fondo, como procesamiento de datos, procesamiento de imágenes, etc., sin ocupar el hilo principal, evitando así retrasos o congelaciones de la página y mejorando el rendimiento y la capacidad de respuesta. .
Procese datos a gran escala: los datos a gran escala se pueden procesar porque se ejecutan en subprocesos separados y no afectarán la ejecución del subproceso principal. Los datos a gran escala se pueden procesar de manera más eficiente, lo que mejora la eficiencia y la escalabilidad del código.
Haga que el código sea más modular: el código se puede dividir en varios módulos y ejecutar en diferentes subprocesos, lo que hace que el código sea más modular, mantenible y legible.
Admite subprocesos múltiples: admite subprocesos múltiples, por lo que puede aprovechar los procesadores de múltiples núcleos para mejorar la eficiencia de ejecución de su código.
Escenarios de uso del trabajador web
Procesamiento de imágenes: como rotación, recorte, escalado, filtros, etc. Esto mejora el rendimiento y la capacidad de respuesta del procesamiento de imágenes.
Procesamiento de datos: como filtrar, ordenar, resumir y transformar conjuntos de datos, etc. Esto mejora la eficiencia y precisión del procesamiento de datos.
Tareas computacionalmente intensivas: como simulación, optimización, predicción, estadística, etc. Esto mejora la velocidad y precisión de las tareas informáticas.
Comunicación en tiempo real: como salas de chat, juegos, videoconferencias, etc. Esto mejora la estabilidad y el rendimiento de las comunicaciones en tiempo real.
Almacenamiento en caché sin conexión: los recursos de uso común se pueden descargar previamente en el caché local del cliente y los recursos en el caché se pueden usar cuando no se puede acceder a Internet. Esto puede mejorar la usabilidad y la capacidad de respuesta de su aplicación, especialmente en dispositivos móviles.
Procesamiento multiproceso: como computación paralela, distribución de tareas, equilibrio de carga, etc. Esto mejora la concurrencia y escalabilidad del sistema.
Uso del trabajador web
Cree un trabajador: simplemente llame al constructor Worker() a través de new, que recibe dos parámetros: const trabajador = new Worker(ruta, opciones);
js transferencia de datos del hilo principal y del hilo de trabajo: el hilo principal y el hilo de trabajo envían mensajes a través del método postMessage y escuchan el evento del mensaje para recibir mensajes.
La transferencia de datos entre el hilo principal y el hilo de trabajo se realiza por valor en lugar de por dirección. Por lo tanto, incluso si un Objeto se pasa y se devuelve directamente, el valor recibido no es el valor original.
Escucha de mensajes de error: el trabajador web proporciona dos eventos para detectar errores
error: se activa cuando ocurre un error dentro del trabajador
messageerror: se activa cuando el evento del mensaje recibe parámetros que no se pueden deserializar
Cerrar el subproceso de trabajo: el cierre del subproceso de trabajo se puede realizar tanto en el subproceso principal como en el subproceso de trabajo, pero el impacto en el subproceso de trabajo es ligeramente diferente.
Similitud: ya sea que el trabajador se cierre en el subproceso principal o dentro del subproceso de trabajo, las tareas en el bucle de eventos actual del subproceso de trabajo continuarán ejecutándose.
La diferencia: cuando el trabajador se cierra manualmente en el hilo principal, la conexión entre el hilo principal y el hilo de trabajo se detendrá inmediatamente. Incluso si todavía hay tareas por ejecutar en el bucle de eventos actual del hilo de trabajo, el postMessage. () Se seguirá llamando al método, pero el hilo principal ya no recibirá el mensaje. Cerrar el trabajador dentro del hilo de trabajo no lo desconectará directamente del hilo principal. En cambio, esperará hasta que se completen todas las tareas del bucle de eventos actual del hilo de trabajo antes de cerrarlo. En otras palabras, si continúa llamando al método postMessage() en el bucle de eventos actual, el hilo principal aún puede recibir mensajes escuchando el evento del mensaje.
El hilo de trabajo hace referencia a otros archivos js
Web Worker proporciona el método importScripts() en el hilo de trabajo para cargar los archivos js que necesitamos. Además, los archivos js cargados a través de este método no están sujetos a la misma política de origen.
Modo ESModule: cuando el archivo js está en modo ESModule, importScripts() no podrá importar el archivo. En este caso, debe usar const work = new Worker('/worker.js', {type: 'module'} ) para especificar el tipo de archivo y luego puede Introducido usando el método de importación
¿Qué tipos de datos se pueden pasar entre el hilo principal y los hilos de trabajo?
Los objetos de error y función y los nodos Dom no se pueden pasar
trabajador compartido
Es un tipo especial de trabajador al que se puede acceder mediante múltiples contextos de navegación, como múltiples ventanas, iframes y trabajadores, pero estos contextos de navegación deben tener el mismo origen.
Implementado en una interfaz diferente a la de los trabajadores comunes, con un alcance global diferente: SharedWorkerGlobalScope, pero heredado de WorkerGlobalScope
La diferencia con los trabajadores: el hilo principal y el hilo de SharedWorker establecen un enlace a través de MessagePort, y todos los métodos de comunicación de datos están montados en SharedWorker.port. Si se usa addEventListener para recibir eventos de mensajes, luego de que el hilo principal inicialice SharedWorker (), Se debe llamar al método SharedWorker.port.start() para abrir manualmente el puerto, pero si se utiliza el método onmessage, el puerto se abre de forma predeterminada y no es necesario llamar manualmente al método SharedWorker.port.start().
Nota: El uso de la consola para imprimir información en el hilo de SharedWorker no aparecerá en la consola del hilo principal.
Para depurar SharedWorker, debe ingresar chrome://inspect/ en el navegador Chrome. Aquí puede ver todos los SharedWorkers en ejecución y luego abrir un panel de herramientas de desarrollo independiente.
compatibilidad
Los trabajadores web ya son compatibles con la mayoría de los navegadores y, básicamente, no hay necesidad de considerar problemas de compatibilidad al usarlos.
La compatibilidad de SharedWorker en Safari y terminales móviles no es muy buena, por lo que debes prestar atención al usarlo.