Post on 17-Jul-2015
JavaScript AsyncVeamos lo básico y juguemos un poco con JavaScript
Juan Miguel Alcalá
JavaScript - un poco de historia -
• Ideado para ser incorporado en Netscape Navigator como una forma de dotar de interactividad a páginas html.
• Microsoft crea su propia versión llamada Jscript y la incorpora en Internet Explorer 3
• Sun se acerca a Ecma, a fin de que su versión se convirtiera en el estándar a utilizar (Ecma-262)
Single Thread Process?
• JavaScript es un lenguaje “single-thread”• Solo posee un hilo de ejecución en el cual todo el código es procesado.
• Si el bloque de código a ejecutar es demasiado grande o muy complejo puede causar que nuestra aplicación se vuelva inutilizable.
• JavaScript permite ejecutar código de manera asíncrona, para ellos se basa en el uso de eventos.• El código basado en eventos es más simple que el código multithread y posee
menos dependencias
JavaScript asíncrono
• Callbacks• El elemento base de la
programación asíncrona en JavaScript
• Observer Pattern
• Messaging (publish – Suscription)
• Promises
• Finite State Machines
Event loop
• Stack• Las llamadas a funciones crean los
frames.
• Heap• El área en la memoria donde se
almacenan los objetos
• (Message) Queue• Contiene una lista de “mensajes” a
procesar
• Event Loop
Event Loop
Web Workers
• Su especificación pertenece al estándar de Html 5• No están definidos en el estándar Ecma
• Permite el uso de multithread
• Cada Web Worker se ejecuta en un nuevo thread; es independiente del flujo de ejecución principal• No tiene acceso al DOM, el objeto Window, la consola, etc.
• Puede realizar operaciones ajax
• Se comunica con el Thread principal mediante mensajes
Web Workers -Event Loop-
¡GRACIAS!
www.scio.com.mx