workers examples example chrome javascript html5 web-worker

javascript - examples - worker postmessage



¿Cuáles son los casos de uso para Web Workers? (3)

Estoy buscando escenarios reales para usar Web Workers API .


Los he usado para enviar grandes cantidades de datos desde el navegador al servidor. Obviamente, puede hacer esto con llamadas regulares de AJAX, pero si esto toma una de las preciosas conexiones por nombre de host. Además, si el usuario realiza una transición de página durante este proceso (por ejemplo, hace clic en un enlace), los objetos JavaScript de la página anterior desaparecen y no puede procesar las devoluciones de llamada. Cuando se utiliza un trabajador web, esta actividad ocurre fuera de banda, por lo que tiene una mejor garantía de que se completará.


Otro caso de uso:

Comprimir / Descomprimir archivos en segundo plano, si tiene muchas imágenes y otros archivos multimedia intercambiados desde el servidor en formato comprimido.


  • John Resig (de la fama de jQuery) tiene un montón de ejemplos interesantes de cómo usar trabajadores web aquí : juegos, gráficos, criptografía.

  • Otro uso es Web I / O; en otras palabras, sondeos de URL en segundo plano. De esta forma, no bloquea la IU a la espera de resultados de sondeo.

  • Otro uso práctico: en Bespin, están usando Web Workers para hacer el resaltado de sintaxis, que no le gustaría bloquear la edición del código mientras está usando la aplicación.

  • Desde Mozilla : una forma en que los trabajadores son útiles es permitir que su código realice cálculos intensivos en el procesador sin bloquear el hilo de la interfaz del usuario.

    Como ejemplo práctico, piense en una aplicación que tiene una gran tabla de #s (esto es el mundo real, por cierto, tomado de una aplicación que programé hace 2 años). Puede cambiar un # en una tabla a través del campo de entrada y un grupo de otros números en columnas diferentes se vuelven a calcular en un proceso bastante intenso.

    El antiguo flujo de trabajo era: Cambiar el #. Ve a tomar un café mientras JavaScript reduce los cambios a otros números y la página web no responde durante 3 minutos, después de que lo optimicé al máximo y volví. Vuelve con café. Cambiar un segundo # Repite muchas veces Haga clic en el botón GUARDAR.

    El nuevo flujo de trabajo con los trabajadores podría ser: Cambiar el #. Recibe un mensaje de estado de que algo está siendo recalculado, pero puedes cambiar otros #s. Cambiar más #s. Cuando haya terminado de cambiar, espere a que el estado cambie a "todos los cálculos se completaron, ahora puede revisar los # finales y guardar".