Capítulo 5 Web Workers.

Slides:



Advertisements
Presentaciones similares
Hojas electrónicas Curso de Nivelación. Capitulo IV Software de aplicación Hojas Electrónicas Macros - Introducción  Si hay tareas de Microsoft Excel.
Advertisements

2012-BM5A. Introducción Todos los lenguajes de programación son distintos entre si. Sin embargo, pueden ser agrupados según la forma de pensar y estructurar.
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
Capítulo 6 Aplicaciones fuera de línea u offline-app
COMPONENTES DE INTERNET
Capítulo 9 Dibujo en el canvas
Clases y Objetos.
DESARROLLO WEB CON HTML 5 Francisco J. Arce Anguiano
Capítulo 3 Drag and Drop, arrastrar y soltar
¿Qué es una consulta? En bases de datos, una consulta es el método para acceder a los datos en las bases de datos. Con las consultas se puede modificar,
Introducción a la Programación Multimedial
Capítulo 13 Leer archivos JSON con AJAX
Capítulo 14 AJAX y la librería jQuery
PHP Hypertext Preprocessor
Capítulo 12 Leer archivos XML con AJAX
LENGUAJES Y REPRESENTACION TECNICA
Introducción a programación web Martin Esses
UNIDAD II INTERNET.
Capítulo 4 La API File para manejar archivos
Diapositivas de HTML.
CURSO: QUITO “D” FÍSICO MATEMÁTICO
Actividad 3 Herramienta tarea
HERRAMIENTAS BÁSICAS PARA ESTUDIO VIRTUAL
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
COMO CREAR UN BLOG EN BLOGGER
ES… ES IMPORTANTE PORQUE SU FUNCION ES SE COMPONE DE ESTA UBICADO EN
Parte 4 HTML.
Algoritmo Capitulo Cinco.
A RQUITECTURA C LIENTE - SERVIDOR La arquitectura del cliente servidor se divide en dos partes Los promovedores de recursos o servicios llamados servidores.
LOS HIPERVÍNCULOS Cesar Meza Figueroa 13/05/18 1°G T/M Tecnologías de la Información Actividad 2 Adriana Ubiarco Limón Universidad de Guadalajara Escuela.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS TECNOLOGÍAS DE LA INFORMACIÓN I YOSIRIS MARTÍNEZ ZAMORANO 1 G M 14/05/18.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS TECNOLOGÍAS DE LA INFORMACIÓN I YOSIRIS MARTÍNEZ ZAMORANO 1 G M 14/05/18.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS Profesora: Adriana Ubiarco Alumna: Citlaly Naomi Barrera Valdez Grado Grupo: 1-A Materia: Tecnologías Turno:
Lizbeth Montserrat cerero cedano 1E T/V característica, funciones, tipos y ejemplos de los hipervínculos.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS Profesora: Adriana Ubiarco Alumna: Citlaly Naomi Barrera Valdez Grado Grupo: 1-A Materia: Tecnologías.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS Profesora: Adriana Ubiarco Alumna: Citlaly Naomi Barrera Valdez Grado Grupo: 1-A Materia: Tecnologías.
LOS HIPERVINCULOS Navarro Muñoz Renata Collette LOS HIPERVINCULOS Los hipervínculos son enlaces o rutas de acceso a otro archivo, pagina Web o una dirección.
Leticia Medrano Rodríguez Unidad 4, actividad 3 Tecnologías de la información Adriana Ubiarco.
Joselin Elizabeth Raygoza Chávez 1-A T/M Tecnologias de la Información.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS TABLA DE CONTENIDO 1. Los hipervínculos Como insertar un hipervínculo Sintaxis para insertar.
LOS HIPERVÍNCULOS. HIPERVÍNCULOS Los hipervínculos son enlaces o rutas de acceso a otro archivo, pagina Web o una dirección de correo electrónico, su.
Introducción al Visual Basic  Un programa en sentido informático está constituido en un sentido general por variables que contienen los datos con los.
ÁREA VINCULACIÓN CLIENTES ENERGÍA
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS Zuleyma Albores Olmedo 1*F T/M Materia: Tecnologías e la Información 1 Maestra: Adriana Ubiarco.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS VALERIA ALEJANDRA PÉREZ ROMERO 1º F- MATUTINO.
HIPERVINCULOS JESUS SAULO MORENO VELASCO 1º FM BGC UNIVERSIDAD DE GUADALAJARA.
HERRAMIENTAS DE MICROSOFT WORD LOS HIPERVINCULOS SUSANA JANETH ISLAS OBLEDO T/M 1*A BGC ACTIVIDAD 3.
HIPERVÍNCULOS Ponce Chávez Ximena Alejandra 1-A Turno Matutino Tecnologías de la Información.
Los hipervínculos Daniel Sebastián Ochoa Carrasco.
Herramientas de Microsoft Word Hipervínculos Guadalupe Margarita Catedral Cruz 1ª A/ Turno: M Tecnologías de la Información 1 Guadalupe Margarita Catedral.
Tecnologías de la Información 1 Paola Noemí Padilla Almejo 1ºA T/M.
HERRAMIENTAS DE MICROSOFT WORD LOS HIPERVINCULOS.
LOS HIPERVINCULOS. Los hipervínculos son enlaces o rutas de acceso a otro archivo, pagina Web o una dirección de correo electrónico, es una herramienta.
HERRAMIENTAS DE MICROSOFT WORD LOS HIPERVINCULOS Ernesto Murillo Pineda 1·G T/M No. 51.
ACTIVIDAD 3 BARAJAS GONZALEZ FATIMA LIZETTE 1.G T-M PREPA 10 TECNOLOGIAS DE LA INFORMACION MAESTRA. ADRIANA UBIARCO.
ACTIVIDAD 3 BARAJAS GONZALEZ FATIMA LIZETTE 1.G T-M PREPA 10 TECNOLOGIAS DE LA INFORMACION MAESTRA. ADRIANA UBIARCO.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS. HIPERVÍNCULO  Los hipervínculos son enlaces o rutas de acceso a otro archivo, pagina Web o una dirección.
C HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS.
ACCIONES Y ESTRUCTURAS
Javascript.
Como sumar dos números con JavaScript
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
Estructura de los Sistemas Operativos Alumna:Arratea Almeyda Aracelli.
Lenguajes del lado del cliente
R.A 1.1 Da tratamiento de datos e información mediante la herramienta de hoja de cálculo electrónica. Excel ¿Qué es y para qué sirve? Excel es un programa.
Leonardo Gael Lopez Santillan 09/05/2019. LOS HIPERVINCULOS Los hipervínculos son enlaces o rutas de acceso a otro archivo, pagina Web o una dirección.
Leonardo Gael Lopez Santillan 09/05/2019. LOS HIPERVINCULOS Los hipervínculos son enlaces o rutas de acceso a otro archivo, pagina Web o una dirección.
UNIVERSIDAD JUÁREZ AUTÓNOMA DE TABASCO Nombres: Isaac Sánchez García Teofilo Martinez Garcia Ricardo Del Carmen Paz López Vanesa Anahí Pérez Lizárraga.
Historia del HTML y de Internet Tim Berners-Lee creó la primera versión del lenguaje HTML en 1989, junto con su equipo también desarrollaron el protocolo.
Access Este programa permite manipular datos en forma de tablas, realizar cálculos complejos con fórmulas y funciones, incluso dibujar distintos tipos.
Transcripción de la presentación:

Capítulo 5 Web Workers

Los web workers son la API de HTML5, que nos permitirá crear procesos paralelos al proceso inicial; en otras palabras, crear hilos o “threads”. Hay dos tipos de web workers: dedicados (dedicated) y compartidos (shared). Los web workers dedicados sólo pueden ser utilizados por la página que los crea y están bien implementados en los cinco navegadores principales. Aunque de momento suene muy bien el uso de procesos paralelos, el número de los mismos depende mucho del navegador.

Los web workers compartidos (shared) pueden ser utilizados por varias páginas. Desafortunadamente no están implementados en Safari ni en ninguna versión de Internet Explorer ni Edge, como se ve en la siguiente tabla: Tampoco están implementados en ningún navegador para dispositivos móviles, entonces, cada que mencionemos los workers, nos estamos refiriendo a los workers dedicados.

Procesos de los web workers Los procesos que son adecuados para manejar los “web workers”, tanto los dedicados como los compartidos, son aquellos que consumen mucho procesador, como: Análisis numérico complejo: realizar cálculos numéricos complejos que consumen mucho procesador y que no requieran representación gráfica. Procesos de inteligencia artificial: cálculos de caminos en juegos, cálculo de coordenadas o procesamiento de lenguaje. Procesos vectoriales: cálculos de imágenes 3D o de reflejos en la etiqueta <canvas>. Análisis de textos en background: revisión en tiempo real de lo que va escribiendo el usuario, como diccionario de sinónimos, autocorrección y diccionarios, entre muchas otras aplicaciones.

Aspectos importantes Un proceso en el background o web worker no tiene acceso al DOM, es decir, no puede modificar, añadir o eliminar a ninguno de los elementos de la página Web, sólo pueden procesar y regresar la información al hilo principal, es decir, a JavaScript. No se tiene “recolector de basura”, por lo que es responsabilidad del programador detener o “matar” los procesos, de lo contrario se pueden quedar trabajando y consumir recursos en forma innecesaria. Los procesos que vamos a mandar al background, o web workers (al cual llamaremos simplemente “worker”), deben ser escritos en archivos independientes del archivo principal, pero no son llamados desde una etiqueta <script>, sino al momento de crear el objeto del web worker. La forma de comunicar el worker con el programa principal es por medio de mensajes con un solo parámetro, que puede ser de cualquier tipo, incluso con formato JSON. El programa principal debe detectar los mensajes que son enviados desde el worker por medio de un sencillo ejemplo.

5.1 Ejemplo de un proceso paralelo con web workers Primero necesitamos desarrollar nuestro programa principal, el cual llamará al worker:

Se crea el objeto “w” por medio de new Worker() y dentro de éste llamamos a un archivo worker.js (que en realidad se puede denominar de cualquier forma válida en JavaScript). En la línea 20, del listado, se valido si ya fue creado el objeto “w”, y esto es simplemente para evitar crear otro worker, ya que si lo hacemos tendríamos dos o más procesos corriendo en paralelo, lo cual podría hacer que el navegador colapse. El programa principal detecta los mensajes del worker, por medio del evento onmessage, línea 28, que provienen del objeto “w”, y ejecutamos una función anónima para tomar la información del objeto event (línea 24) y la desplegamos. Para finalizar y matar el worker, necesitamos llamar al método terminate() y procedemos a convertir en indefinida la variable w, por si el usuario desea volver a ejecutar nuevamente el contador.

Ahora definiremos al worker, que en este caso es bastante sencillo: Como puede observar, el proceso es bastante sencillo. Simplemente estamos llamando a una función con un proceso setTimeout() y nos comunicamos con el programa principal con la función postMessage(). Si ejecuta el proceso deberá obtener un contador que se detiene con el botón correspondiente. Un excelente ejemplo de un algoritmo más pensado para estresar los procesadores es el de la búsqueda de números narcisistas, que se puede encontrar en la siguiente liga: http://www.genbetadev.com/desarrollo-web/web-worker-ejecuta-subprocesos-javascript-en-paralelo.

5.2 Mandar mensajes desde el Programa Principal hacia el worker Primero debemos enviar el mensaje desde el objeto creado en la página principal con el método postMessage() y luego crear un listener desde el worker. Un punto fundamental es que el objeto dentro del worker debe ser “self”, no “this”, como en otros casos de programación orientada a objetos, que no es el caso.

Enviar mensajes del programa principal al worker

Worker de saludo

5.3 Comunicarse con el worker por medio de objetos ¿Qué pasa si necesitamos datos más estructurados? Podemos enviarlos como objetos JavaScript. Por medio de objetos de JavaScript se puede establecer comunicación, los cuales son leídos en forma “natural” por el worker (es una característica nativa de JavaScript). Realmente podemos enviar mensajes más complejos y estructurados al worker y viceversa.

Ejemplo: el worker recibe de forma natural los objetos enviados desde la página principal

5.4 El manejo de errores en los web workers Para controlar los errores dentro de los web workers, contamos con el evento onerror, el cual tiene los siguientes argumentos dentro de su objeto de evento que regresa en la función: message: mensaje de error. filename: nombre del archivo. lineno: número de línea donde se presentó el error en el script del worker. Para los web workers dedicados, el errorEvent será un objeto. Una muestra de cómo implementar el manejo de los errores desde el worker, la tenemos en el siguiente listado que hay que escribir en la página principal:

Los web workers dedicados a mejorar el desempeño en el procesamiento deimágenes. http://www.whatwg.org/specs/web-workers/current-work/ http://www.w3.org/TR/workers/ http://www.desarrolloweb.com/articulos/web-worker-html5.html http://cggallant.blogspot.mx/2010/08/introduction-to-html-5-web-workers.html https://w3c.github.io/workers/ http://cggallant.blogspot.mx/2010/08/deeper-look-at-html-5-web-workers.html http://caniuse.com/#search=shared http://blogs.msdn.com/b/eternalcoding/archive/2012/09/20/using-web-workers-to-improveperformance- of-image-manipulation.aspx http://www.smartjava.org/content/partial-image-manipulation-canvas-and-webworkers