SlideShare una empresa de Scribd logo
OFFLINE FIRST
https://github.com/rocimunoz/WebStorage
@roci_munoz
OFFLINE FIRST
● Offline First
● Herramientas almacenamiento en cliente
– Local Storage/Session Storage
– WebSql
– IndexedDb
– Cache Storage
– File System API
● Ejemplos
OFFLINE FIRST
● Nuevo paradigma de las aplicaciones web y moviles
● Prepara las aplicaciones para que respondan en
modo offline
● Estar offline NO ES UN ERROR, ES UN ESTADO
– una persona en el metro no tiene conexión
– cuando viajamos en avión no hay conexión
– nos quedamos sin datos en el movil
– viajamos a un pais distinto
– lugares sin buena señal
OFFLINE FIRST: FACEBOOK
En estado Offline
● Podemos escribir
comentarios
● Podemos enviar fotos
● Podemos darle al
"like"
OFFLINE FIRST: GOOGLE MAPS
En estado Offline
● Puedes visualizar
mapas
● Tamaño limite 1.5GB
● Durante 30 dias
OFFLINE FIRST: GOOGLE MAPS
En estado Offline
● Puedes ver muchos tuits
que han sido cacheados
● Puedes ver notificaciones
cacheadas
● No te avisa de que estas
en modo offline
● Problemas en los
mensajes directos y
edicion del perfil
LOCAL STORAGE
● Almacenamiento clave/valor
● Limite de espacio entre 2-10 Mb (segun navegador)
● Solo permite almacenar cadenas de texto
● Los datos almacenados no expiran
● Se almacenan en un fichero sqlite en el perfil del
navegador
– C:Users
[USERNAME]AppDataLocalGoogleChromeUser
DataDefaultLocal Storage
SESSION STORAGE
● Almacenamiento clave / valor
● Limite de espacio entre 2-10 Mb (segun navegador)
● Solo permite almacenar cadenas de texto
● Los datos almacenados se pierden al cerrar el
navegador
● Se almacenan en un fichero sqlite en el perfil del
navegador
● En chrome
– C:Users
[USERNAME]AppDataLocalGoogleChromeUser
DataDefault Session Storage
LOCAL/SESSION STORAGE
● Métodos
– getItem(key) : consulta una clave
– setItem(key, value) : modifica el valor de un registro
– removeItem(key): elimina un registro
– clear : borra todos los registros
● Eventos
window.addEventListener("storage",funcionEvento,
false);
WEB SQL
● Base de datos relacional en el lado del cliente
● No tiene soporte de la W3C desde el 18 Noviembre
del 2010
● No es parte de la especificacion HTML 5
● Firefox y Explorer no dan soporte
● Chrome, Safari y Opera tienen soporte
WEB SQL
● Basado en SqLite
● Limite de 5Mb
● Metodos
– openDatabase(nombre, version, descripcion,
tamano)
– transaction : gestiona la transaccion
– executeSql: ejecuta las querys
● Ejemplo: http://html5demos.com/database-rollback
WEB SQL
INDEXED DB
● Sistema de almacenamiento local para grandes
cantidades
● Orientada a objetos
– la base de datos es un contenedor de objetos
– las tablas son objetos
● Espacio ilimitado (50Mb en Firefox)
● Proporciona 2 APIS separados
– acceso sincrono : no está soportado (serviceWorkers)
– acceso asincrono: uso de callbacks
● No utiliza SQL
INDEXED DB
CACHE APP
● Permite navegar sin conexion
● Mayor velocidad ya que los recursos están en local
● Reducción de la carga del servidor.
● El navegador solo pide al servidor lo que ha cambiado
● Necesita fichero Manifiesto
<!DOCTYPE html>
<html lang="es"
manifest="ejemplo.appcache">
<head>
CACHE APP
FILE SYSTEM API
● Simula un sistema local de ficheros protegido en cliente
● Permite almacenar grandes cantidades de información
binaria
● Alternativa a IndexedDB y WebSql I
– IndexedDB no permite trabajar con Blobs
– WebSql dejo de tener soporte
● Almacenamiento de 2 tipos
– temporal: se borra a decision del navegador (5 Mb)
– persistente: el usuario lo borra. Necesita permisos
FILE SYSTEM API
● Tiene limitaciones
– Cross Domain: no podemos acceder a ficheros fuera
del dominio
– No permite ficheros ejecutables
– Restricción de nombres "Mis Documentos"
– No permite acceso file:// (es virtual)
● Ejemplo de uso App de musica: El usuario selecciona una
cancion. La primera vez se descarga. Si quiere volver a
escucharla se recoge de File System API
● Subida de N Ficheros con cortes de conexión.
Herramientas: Resumen
● OfflineFirst: Prepara tu aplicacion para estar offline
● Herramientas
– Local/Session Storage : Pequeños datos en cliente
clave/valor
– WebSql: BD Relacionales en cliente. No soporte W3C
– IndexedDB: Almacenamiento de objetos en cliente. Util
con grandes cantidades de datos. No soporta Blobs
– Cache: Soporte para que tu aplicacion funcione en
offline
– File System API: Soporte para ficheros en cliente.
Grandes cantidades de datos. Manejo de Blobs
Enlaces
● Github OfflineFirst: https://github.com/offlinefirst
● Recopilacion de ejemplos
– https://github.com/pazguille/offline-first
● Cache usando serviceWorkers
– https://jakearchibald.com/2014/offline-cookbook/
● File System API
– http://www.html5rocks.com/es/tutorials/file/filesystem/

Más contenido relacionado

La actualidad más candente

Pagina web
Pagina webPagina web
Pagina web
kathecorteza9602
 
¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days
La Drupalera
 
Presentacion Taller Desarrollo de Blogs
Presentacion Taller Desarrollo de BlogsPresentacion Taller Desarrollo de Blogs
Presentacion Taller Desarrollo de Blogs
Luis Sandoval
 
Internet y navegadores_web[1]
Internet y navegadores_web[1]Internet y navegadores_web[1]
Internet y navegadores_web[1]NaiieHerrera
 
Anatomía de implementación de un LCMS basado en moodle
Anatomía de implementación de un LCMS basado en moodleAnatomía de implementación de un LCMS basado en moodle
Anatomía de implementación de un LCMS basado en moodle
José Luis Granda
 
Cliente y servidor web
Cliente y servidor webCliente y servidor web
Cliente y servidor websullonkey
 
presentación Paginas web
presentación Paginas web presentación Paginas web
presentación Paginas web alexgantiva
 
Usos básicos de la internet
Usos básicos de la internetUsos básicos de la internet
Usos básicos de la internet
hessax
 
Pagina web
 Pagina web Pagina web
Pagina web
jolianp
 
Introduccion técnica a Drupal
Introduccion técnica a DrupalIntroduccion técnica a Drupal
Introduccion técnica a Drupal
Pedro Cambra
 
Html5 Iam the browser, Iam the future
Html5 Iam the browser, Iam the futureHtml5 Iam the browser, Iam the future
Html5 Iam the browser, Iam the futureCamila Rojas
 
Web 2.0, Pequeña introducción desde el enfoque de un desarrollador
Web 2.0, Pequeña introducción desde el enfoque de un desarrolladorWeb 2.0, Pequeña introducción desde el enfoque de un desarrollador
Web 2.0, Pequeña introducción desde el enfoque de un desarrollador
guest76dd49
 
Presentación aulavirtual
Presentación aulavirtualPresentación aulavirtual
Presentación aulavirtualjflores1208
 

La actualidad más candente (18)

Pagina web
Pagina webPagina web
Pagina web
 
¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days
 
Presentacion Taller Desarrollo de Blogs
Presentacion Taller Desarrollo de BlogsPresentacion Taller Desarrollo de Blogs
Presentacion Taller Desarrollo de Blogs
 
Internet y navegadores_web[1]
Internet y navegadores_web[1]Internet y navegadores_web[1]
Internet y navegadores_web[1]
 
Anatomía de implementación de un LCMS basado en moodle
Anatomía de implementación de un LCMS basado en moodleAnatomía de implementación de un LCMS basado en moodle
Anatomía de implementación de un LCMS basado en moodle
 
Cliente y servidor web
Cliente y servidor webCliente y servidor web
Cliente y servidor web
 
la web
la webla web
la web
 
Pagina web
Pagina webPagina web
Pagina web
 
WEB 2.0
WEB 2.0WEB 2.0
WEB 2.0
 
Servicio web
Servicio webServicio web
Servicio web
 
presentación Paginas web
presentación Paginas web presentación Paginas web
presentación Paginas web
 
Usos básicos de la internet
Usos básicos de la internetUsos básicos de la internet
Usos básicos de la internet
 
Pagina web
 Pagina web Pagina web
Pagina web
 
Introduccion técnica a Drupal
Introduccion técnica a DrupalIntroduccion técnica a Drupal
Introduccion técnica a Drupal
 
Html5 Iam the browser, Iam the future
Html5 Iam the browser, Iam the futureHtml5 Iam the browser, Iam the future
Html5 Iam the browser, Iam the future
 
Web 2.0, Pequeña introducción desde el enfoque de un desarrollador
Web 2.0, Pequeña introducción desde el enfoque de un desarrolladorWeb 2.0, Pequeña introducción desde el enfoque de un desarrollador
Web 2.0, Pequeña introducción desde el enfoque de un desarrollador
 
Presentación aulavirtual
Presentación aulavirtualPresentación aulavirtual
Presentación aulavirtual
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 

Similar a Coders cantabria - Junio (Offline First)

Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Iván Campaña Naranjo
 
NFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datosNFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datos
GDGMallorca
 
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
Keopx
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en Drupal
Alberto Permuy Leal
 
Los mejores trucos y prácticas para configurar drupal
Los mejores trucos y prácticas para configurar drupalLos mejores trucos y prácticas para configurar drupal
Los mejores trucos y prácticas para configurar drupal
SiteGround España
 
Drupal Sitebuilding 101
Drupal Sitebuilding 101Drupal Sitebuilding 101
Drupal Sitebuilding 101
Alessandro Mascherpa
 
HTML5-Aplicaciones web
HTML5-Aplicaciones webHTML5-Aplicaciones web
HTML5-Aplicaciones web
CARLOS III UNIVERSITY OF MADRID
 
Almacenamiento web HTML5
Almacenamiento web HTML5Almacenamiento web HTML5
Almacenamiento web HTML5Javii Enriquez
 
Cookies y otras tecnologías de monitorización en internet
Cookies y otras tecnologías de monitorización en internetCookies y otras tecnologías de monitorización en internet
Cookies y otras tecnologías de monitorización en internet
Alejandro Ramos
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidad
Iván Campaña Naranjo
 
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Juan Carlos Olivares Rojas
 
¡This is drupal!
¡This is drupal!¡This is drupal!
¡This is drupal!
Jose Luis Bellido
 
Servicios web con Python
Servicios web con PythonServicios web con Python
Servicios web con Python
Manuel Pérez
 
#2-Revelar Algunos Tesoros de Web 2,0-(Esp)-Feb07.ppt
#2-Revelar Algunos Tesoros de Web 2,0-(Esp)-Feb07.ppt#2-Revelar Algunos Tesoros de Web 2,0-(Esp)-Feb07.ppt
#2-Revelar Algunos Tesoros de Web 2,0-(Esp)-Feb07.ppt
J T "Tom" Johnson
 
Alternativas de hosting para WordPress
Alternativas de hosting para WordPressAlternativas de hosting para WordPress
Alternativas de hosting para WordPress
Francisco Javier Ros Muñoz
 
HTML5
HTML5HTML5
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptxTEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
AlfonsoJimenez51
 
Construyendo una red social con Drupal
Construyendo una red social con DrupalConstruyendo una red social con Drupal
Construyendo una red social con DrupalDaniel Primo
 
Performance en Drupal 7
Performance en Drupal 7Performance en Drupal 7
Performance en Drupal 7
Karim Boudjema Schombourg
 
Aplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiAplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiGuillermo Nassi
 

Similar a Coders cantabria - Junio (Offline First) (20)

Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
 
NFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datosNFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datos
 
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en Drupal
 
Los mejores trucos y prácticas para configurar drupal
Los mejores trucos y prácticas para configurar drupalLos mejores trucos y prácticas para configurar drupal
Los mejores trucos y prácticas para configurar drupal
 
Drupal Sitebuilding 101
Drupal Sitebuilding 101Drupal Sitebuilding 101
Drupal Sitebuilding 101
 
HTML5-Aplicaciones web
HTML5-Aplicaciones webHTML5-Aplicaciones web
HTML5-Aplicaciones web
 
Almacenamiento web HTML5
Almacenamiento web HTML5Almacenamiento web HTML5
Almacenamiento web HTML5
 
Cookies y otras tecnologías de monitorización en internet
Cookies y otras tecnologías de monitorización en internetCookies y otras tecnologías de monitorización en internet
Cookies y otras tecnologías de monitorización en internet
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidad
 
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
Arquitectura de una Caché para Almacenar Sitios Web en Dispositivos Móviles P...
 
¡This is drupal!
¡This is drupal!¡This is drupal!
¡This is drupal!
 
Servicios web con Python
Servicios web con PythonServicios web con Python
Servicios web con Python
 
#2-Revelar Algunos Tesoros de Web 2,0-(Esp)-Feb07.ppt
#2-Revelar Algunos Tesoros de Web 2,0-(Esp)-Feb07.ppt#2-Revelar Algunos Tesoros de Web 2,0-(Esp)-Feb07.ppt
#2-Revelar Algunos Tesoros de Web 2,0-(Esp)-Feb07.ppt
 
Alternativas de hosting para WordPress
Alternativas de hosting para WordPressAlternativas de hosting para WordPress
Alternativas de hosting para WordPress
 
HTML5
HTML5HTML5
HTML5
 
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptxTEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
TEMA 5_ SERVICIOS_WEB_PRESENTACION.pptx
 
Construyendo una red social con Drupal
Construyendo una red social con DrupalConstruyendo una red social con Drupal
Construyendo una red social con Drupal
 
Performance en Drupal 7
Performance en Drupal 7Performance en Drupal 7
Performance en Drupal 7
 
Aplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiAplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y Nassi
 

Último

maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 

Último (20)

maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 

Coders cantabria - Junio (Offline First)

  • 2. OFFLINE FIRST ● Offline First ● Herramientas almacenamiento en cliente – Local Storage/Session Storage – WebSql – IndexedDb – Cache Storage – File System API ● Ejemplos
  • 3. OFFLINE FIRST ● Nuevo paradigma de las aplicaciones web y moviles ● Prepara las aplicaciones para que respondan en modo offline ● Estar offline NO ES UN ERROR, ES UN ESTADO – una persona en el metro no tiene conexión – cuando viajamos en avión no hay conexión – nos quedamos sin datos en el movil – viajamos a un pais distinto – lugares sin buena señal
  • 4. OFFLINE FIRST: FACEBOOK En estado Offline ● Podemos escribir comentarios ● Podemos enviar fotos ● Podemos darle al "like"
  • 5. OFFLINE FIRST: GOOGLE MAPS En estado Offline ● Puedes visualizar mapas ● Tamaño limite 1.5GB ● Durante 30 dias
  • 6. OFFLINE FIRST: GOOGLE MAPS En estado Offline ● Puedes ver muchos tuits que han sido cacheados ● Puedes ver notificaciones cacheadas ● No te avisa de que estas en modo offline ● Problemas en los mensajes directos y edicion del perfil
  • 7. LOCAL STORAGE ● Almacenamiento clave/valor ● Limite de espacio entre 2-10 Mb (segun navegador) ● Solo permite almacenar cadenas de texto ● Los datos almacenados no expiran ● Se almacenan en un fichero sqlite en el perfil del navegador – C:Users [USERNAME]AppDataLocalGoogleChromeUser DataDefaultLocal Storage
  • 8. SESSION STORAGE ● Almacenamiento clave / valor ● Limite de espacio entre 2-10 Mb (segun navegador) ● Solo permite almacenar cadenas de texto ● Los datos almacenados se pierden al cerrar el navegador ● Se almacenan en un fichero sqlite en el perfil del navegador ● En chrome – C:Users [USERNAME]AppDataLocalGoogleChromeUser DataDefault Session Storage
  • 9. LOCAL/SESSION STORAGE ● Métodos – getItem(key) : consulta una clave – setItem(key, value) : modifica el valor de un registro – removeItem(key): elimina un registro – clear : borra todos los registros ● Eventos window.addEventListener("storage",funcionEvento, false);
  • 10. WEB SQL ● Base de datos relacional en el lado del cliente ● No tiene soporte de la W3C desde el 18 Noviembre del 2010 ● No es parte de la especificacion HTML 5 ● Firefox y Explorer no dan soporte ● Chrome, Safari y Opera tienen soporte
  • 11. WEB SQL ● Basado en SqLite ● Limite de 5Mb ● Metodos – openDatabase(nombre, version, descripcion, tamano) – transaction : gestiona la transaccion – executeSql: ejecuta las querys ● Ejemplo: http://html5demos.com/database-rollback
  • 13. INDEXED DB ● Sistema de almacenamiento local para grandes cantidades ● Orientada a objetos – la base de datos es un contenedor de objetos – las tablas son objetos ● Espacio ilimitado (50Mb en Firefox) ● Proporciona 2 APIS separados – acceso sincrono : no está soportado (serviceWorkers) – acceso asincrono: uso de callbacks ● No utiliza SQL
  • 15. CACHE APP ● Permite navegar sin conexion ● Mayor velocidad ya que los recursos están en local ● Reducción de la carga del servidor. ● El navegador solo pide al servidor lo que ha cambiado ● Necesita fichero Manifiesto <!DOCTYPE html> <html lang="es" manifest="ejemplo.appcache"> <head>
  • 17. FILE SYSTEM API ● Simula un sistema local de ficheros protegido en cliente ● Permite almacenar grandes cantidades de información binaria ● Alternativa a IndexedDB y WebSql I – IndexedDB no permite trabajar con Blobs – WebSql dejo de tener soporte ● Almacenamiento de 2 tipos – temporal: se borra a decision del navegador (5 Mb) – persistente: el usuario lo borra. Necesita permisos
  • 18. FILE SYSTEM API ● Tiene limitaciones – Cross Domain: no podemos acceder a ficheros fuera del dominio – No permite ficheros ejecutables – Restricción de nombres "Mis Documentos" – No permite acceso file:// (es virtual) ● Ejemplo de uso App de musica: El usuario selecciona una cancion. La primera vez se descarga. Si quiere volver a escucharla se recoge de File System API ● Subida de N Ficheros con cortes de conexión.
  • 19. Herramientas: Resumen ● OfflineFirst: Prepara tu aplicacion para estar offline ● Herramientas – Local/Session Storage : Pequeños datos en cliente clave/valor – WebSql: BD Relacionales en cliente. No soporte W3C – IndexedDB: Almacenamiento de objetos en cliente. Util con grandes cantidades de datos. No soporta Blobs – Cache: Soporte para que tu aplicacion funcione en offline – File System API: Soporte para ficheros en cliente. Grandes cantidades de datos. Manejo de Blobs
  • 20. Enlaces ● Github OfflineFirst: https://github.com/offlinefirst ● Recopilacion de ejemplos – https://github.com/pazguille/offline-first ● Cache usando serviceWorkers – https://jakearchibald.com/2014/offline-cookbook/ ● File System API – http://www.html5rocks.com/es/tutorials/file/filesystem/