JavaScript Async | Juan Miguel Alcalá

9
JavaScript Async Veamos lo básico y juguemos un poco con JavaScript Juan Miguel Alcalá

Transcript of JavaScript Async | Juan Miguel Alcalá

Page 1: JavaScript Async | Juan Miguel Alcalá

JavaScript AsyncVeamos lo básico y juguemos un poco con JavaScript

Juan Miguel Alcalá

Page 2: JavaScript Async | 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)

Page 3: JavaScript Async | Juan Miguel Alcalá

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

Page 4: JavaScript Async | Juan Miguel Alcalá

JavaScript asíncrono

• Callbacks• El elemento base de la

programación asíncrona en JavaScript

• Observer Pattern

• Messaging (publish – Suscription)

• Promises

• Finite State Machines

Page 5: JavaScript Async | Juan Miguel Alcalá

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

Page 6: JavaScript Async | Juan Miguel Alcalá

Event Loop

Page 7: JavaScript Async | Juan Miguel Alcalá

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

Page 8: JavaScript Async | Juan Miguel Alcalá

Web Workers -Event Loop-

Page 9: JavaScript Async | Juan Miguel Alcalá

¡GRACIAS!

www.scio.com.mx