SlideShare a Scribd company logo
1 of 10
Download to read offline
Creando un proceso web worker
Danae Aguilar Guzmán
MCT, MS, MCTS, MCP
danaeaguilar@gmail.com
Contenido del Módulo
 Iniciando y deteniendo un web worker
 Pasando datos a un web worker
 Configurando timeouts e intervalos
 Registrando un oyente de eventos
 Limitaciones de un web worker
Web workers
Web Workers
 Permiten realizar operaciones asíncronas.
 Permiten la ejecución de un script en una
tarea de background.
 El worker puede enviar mensajes de cualquier
tipo que pueda ser un objeto serializado
 La interfaz de usuario se mantendrá
responsiva y no bloqueada.
Iniciando y deteniendo un web worker
Creando un Web Worker:
Iniciando el Web Worker:
Deteniendo el Web Worker:
var worker = new Worker('Scripts/miWork.js');
worker.terminate();
worker.postMessage($('#mensage').val());
Iniciando y deteniendo un web worker
El script del Web Worker:
Suscribiéndose a los eventos:
self.onmessage = function (e) {
for (c in e.data) {
postMessage(e.data[c].toUpperCase());
}
}
worker.onmessage = function (e) {
$('#resultado').append(e.data + '<br />');
};
worker.onerror = function (e) {
$('#resultado').append('Error: ' + e.data + '<br />');
};
Pasando datos a un web worker
Pasando datos a un Web Worker:
Recibiendo datos:
worker.postMessage($('#mensage').val());
worker.onmessage = function (e) {
$('#resultado').append(e.data + '<br />');
};
Configurando timeouts e intervalos
Los Web Workers pueden usar timers:
 setTimeout()
 clearTimeout()
 setInterval()
 clearInterval()
Configurando timeouts e intervalos
Los Web Workers pueden usar timers:
var i = 0;
function incrementarContador() {
i = i + 1;
postMessage(i);
setTimeout("incrementarContador()", 500);
}
incrementarContador();
Registrando un oyente de eventos
Oyendo eventos de Web Workers:
worker.onmessage = function (e) {
$('#resultado').append(e.data + '<br />');
};
worker.onerror = function (e) {
$('#resultado').append('Error: ' + e.data + '<br />');
};
Limitaciones de un web worker
• El estado de los Web workers es isolado de la
página.
• Los mensajes se serializan. Se crea una copia
del mensaje, nunca el web worker y el
creador referencian a un mismo objeto.
• Los web workers no permiten bloqueos de
synchroniza-tion, semáforos, o mutexes.
• No tienen acceso al (DOM). Si necesitan
acceder al DOM deben postear un mensage a
su creador, su creador procesará el mensaje y
accederá al DOM.

More Related Content

What's hot

Curso de Struts 2: Unidad Didáctica 02 Acciones
Curso de Struts 2: Unidad Didáctica 02 AccionesCurso de Struts 2: Unidad Didáctica 02 Acciones
Curso de Struts 2: Unidad Didáctica 02 AccionesDavid Vaquero
 
Curso de Struts 2: Unidad Didáctica 04 Formularios
Curso de Struts 2: Unidad Didáctica 04 FormulariosCurso de Struts 2: Unidad Didáctica 04 Formularios
Curso de Struts 2: Unidad Didáctica 04 FormulariosDavid Vaquero
 
Curso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionCurso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionDavid Vaquero
 
Tarea3 programacionweb2021b
Tarea3 programacionweb2021bTarea3 programacionweb2021b
Tarea3 programacionweb2021bEnriqueRuiz136
 
Tarea3 programacionweb2020b
Tarea3 programacionweb2020bTarea3 programacionweb2020b
Tarea3 programacionweb2020bEnriqueRuiz147
 

What's hot (6)

Curso de Struts 2: Unidad Didáctica 02 Acciones
Curso de Struts 2: Unidad Didáctica 02 AccionesCurso de Struts 2: Unidad Didáctica 02 Acciones
Curso de Struts 2: Unidad Didáctica 02 Acciones
 
Curso de Struts 2: Unidad Didáctica 04 Formularios
Curso de Struts 2: Unidad Didáctica 04 FormulariosCurso de Struts 2: Unidad Didáctica 04 Formularios
Curso de Struts 2: Unidad Didáctica 04 Formularios
 
Curso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionCurso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 Introduccion
 
Tarea3 programacionweb2021b
Tarea3 programacionweb2021bTarea3 programacionweb2021b
Tarea3 programacionweb2021b
 
Tarea3 programacionweb2020b
Tarea3 programacionweb2020bTarea3 programacionweb2020b
Tarea3 programacionweb2020b
 
Javascript y AJAX en Wordpress
Javascript y AJAX en WordpressJavascript y AJAX en Wordpress
Javascript y AJAX en Wordpress
 

Viewers also liked

09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptablesDanae Aguilar Guzmán
 
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
WPF 04 -  reutilizando recursos y estilos en una aplicación WPF WPF 04 -  reutilizando recursos y estilos en una aplicación WPF
WPF 04 - reutilizando recursos y estilos en una aplicación WPF Danae Aguilar Guzmán
 
ASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minificationASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minificationDanae Aguilar Guzmán
 
WPF 02 - construyendo una interfaz de usuario
WPF 02  - construyendo una interfaz de usuarioWPF 02  - construyendo una interfaz de usuario
WPF 02 - construyendo una interfaz de usuarioDanae Aguilar Guzmán
 
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicacionesWPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicacionesDanae Aguilar Guzmán
 
WPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimediaWPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimediaDanae Aguilar Guzmán
 
WPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datosWPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datosDanae Aguilar Guzmán
 
ASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesDanae Aguilar Guzmán
 

Viewers also liked (17)

09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables
 
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
WPF 04 -  reutilizando recursos y estilos en una aplicación WPF WPF 04 -  reutilizando recursos y estilos en una aplicación WPF
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
 
ASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minificationASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minification
 
07. Usando CSS3
07. Usando CSS307. Usando CSS3
07. Usando CSS3
 
WPF 02 - construyendo una interfaz de usuario
WPF 02  - construyendo una interfaz de usuarioWPF 02  - construyendo una interfaz de usuario
WPF 02 - construyendo una interfaz de usuario
 
08. Propiedades de estilo HTML box
08. Propiedades de estilo HTML box08. Propiedades de estilo HTML box
08. Propiedades de estilo HTML box
 
ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
 
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicacionesWPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
 
WPF 01 - introducción
WPF 01 -  introducciónWPF 01 -  introducción
WPF 01 - introducción
 
WPF 05 - triggers y eventos
WPF 05 - triggers y eventosWPF 05 - triggers y eventos
WPF 05 - triggers y eventos
 
04. Implementando APIs HTML5
04. Implementando APIs HTML5 04. Implementando APIs HTML5
04. Implementando APIs HTML5
 
ASP.NET MVC - AJAX
ASP.NET MVC - AJAXASP.NET MVC - AJAX
ASP.NET MVC - AJAX
 
WPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimediaWPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimedia
 
WPF 03 - controles WPF
WPF 03 - controles WPF WPF 03 - controles WPF
WPF 03 - controles WPF
 
WPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datosWPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datos
 
ASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parciales
 
01. Creando documentos HTML5
01. Creando documentos HTML501. Creando documentos HTML5
01. Creando documentos HTML5
 

Similar to 06. Creando un proceso web worker (20)

Cien usos con serverless
Cien usos con serverlessCien usos con serverless
Cien usos con serverless
 
Tema4 apartado4.2
Tema4 apartado4.2Tema4 apartado4.2
Tema4 apartado4.2
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
expo
expoexpo
expo
 
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPCEjemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
 
Tallerprogramacion
TallerprogramacionTallerprogramacion
Tallerprogramacion
 
SignalR y dispositivos móviles
SignalR y dispositivos móvilesSignalR y dispositivos móviles
SignalR y dispositivos móviles
 
Desarrollo De Web Parts En Share Point2007
Desarrollo De Web Parts En Share Point2007Desarrollo De Web Parts En Share Point2007
Desarrollo De Web Parts En Share Point2007
 
T10_Ejercicios_Solucion.pdf
T10_Ejercicios_Solucion.pdfT10_Ejercicios_Solucion.pdf
T10_Ejercicios_Solucion.pdf
 
Servicios web
Servicios webServicios web
Servicios web
 
Introducción a DJango
Introducción a DJangoIntroducción a DJango
Introducción a DJango
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
SEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdfSEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdf
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor
 

More from Danae Aguilar Guzmán

WPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralelaWPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralelaDanae Aguilar Guzmán
 
WPF 06 - personalizando los controles de interfaz de usuario
WPF 06 -  personalizando los controles de interfaz de usuarioWPF 06 -  personalizando los controles de interfaz de usuario
WPF 06 - personalizando los controles de interfaz de usuarioDanae Aguilar Guzmán
 
ASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiDanae Aguilar Guzmán
 
ASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacionASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacionDanae Aguilar Guzmán
 
ASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estadoASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estadoDanae Aguilar Guzmán
 
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCDanae Aguilar Guzmán
 
Crecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de softwareCrecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de softwareDanae Aguilar Guzmán
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodosDanae Aguilar Guzmán
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQueryDanae Aguilar Guzmán
 
02. Interactuando con controles de UI
02. Interactuando con controles de UI02. Interactuando con controles de UI
02. Interactuando con controles de UIDanae Aguilar Guzmán
 

More from Danae Aguilar Guzmán (12)

Microsoft HoloLens
Microsoft HoloLensMicrosoft HoloLens
Microsoft HoloLens
 
WPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralelaWPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralela
 
WPF 06 - personalizando los controles de interfaz de usuario
WPF 06 -  personalizando los controles de interfaz de usuarioWPF 06 -  personalizando los controles de interfaz de usuario
WPF 06 - personalizando los controles de interfaz de usuario
 
ASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web api
 
ASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacionASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacion
 
ASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estadoASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estado
 
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVC
 
Crecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de softwareCrecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de software
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery
 
02. Interactuando con controles de UI
02. Interactuando con controles de UI02. Interactuando con controles de UI
02. Interactuando con controles de UI
 
Conceptos C#
Conceptos C#Conceptos C#
Conceptos C#
 

06. Creando un proceso web worker

  • 1. Creando un proceso web worker Danae Aguilar Guzmán MCT, MS, MCTS, MCP danaeaguilar@gmail.com
  • 2. Contenido del Módulo  Iniciando y deteniendo un web worker  Pasando datos a un web worker  Configurando timeouts e intervalos  Registrando un oyente de eventos  Limitaciones de un web worker
  • 3. Web workers Web Workers  Permiten realizar operaciones asíncronas.  Permiten la ejecución de un script en una tarea de background.  El worker puede enviar mensajes de cualquier tipo que pueda ser un objeto serializado  La interfaz de usuario se mantendrá responsiva y no bloqueada.
  • 4. Iniciando y deteniendo un web worker Creando un Web Worker: Iniciando el Web Worker: Deteniendo el Web Worker: var worker = new Worker('Scripts/miWork.js'); worker.terminate(); worker.postMessage($('#mensage').val());
  • 5. Iniciando y deteniendo un web worker El script del Web Worker: Suscribiéndose a los eventos: self.onmessage = function (e) { for (c in e.data) { postMessage(e.data[c].toUpperCase()); } } worker.onmessage = function (e) { $('#resultado').append(e.data + '<br />'); }; worker.onerror = function (e) { $('#resultado').append('Error: ' + e.data + '<br />'); };
  • 6. Pasando datos a un web worker Pasando datos a un Web Worker: Recibiendo datos: worker.postMessage($('#mensage').val()); worker.onmessage = function (e) { $('#resultado').append(e.data + '<br />'); };
  • 7. Configurando timeouts e intervalos Los Web Workers pueden usar timers:  setTimeout()  clearTimeout()  setInterval()  clearInterval()
  • 8. Configurando timeouts e intervalos Los Web Workers pueden usar timers: var i = 0; function incrementarContador() { i = i + 1; postMessage(i); setTimeout("incrementarContador()", 500); } incrementarContador();
  • 9. Registrando un oyente de eventos Oyendo eventos de Web Workers: worker.onmessage = function (e) { $('#resultado').append(e.data + '<br />'); }; worker.onerror = function (e) { $('#resultado').append('Error: ' + e.data + '<br />'); };
  • 10. Limitaciones de un web worker • El estado de los Web workers es isolado de la página. • Los mensajes se serializan. Se crea una copia del mensaje, nunca el web worker y el creador referencian a un mismo objeto. • Los web workers no permiten bloqueos de synchroniza-tion, semáforos, o mutexes. • No tienen acceso al (DOM). Si necesitan acceder al DOM deben postear un mensage a su creador, su creador procesará el mensaje y accederá al DOM.