SlideShare una empresa de Scribd logo
1 de 20
APLICACIONES WEB OFFLINE
En HTML5

Prieto Chaparro Noé Aarón – 10410555
Nassi Torres Guillermo Alberto – 10410515
05 Feb 2014
MARCO CONCEPTUAL
• "Web" y "online" son dos términos que están muy relacionados entre sí, y
muchas personas los consideran incluso sinónimos. Por tanto, ¿por qué
hablamos de tecnologías web "offline" (sin conexión) y qué significa este
término?
• Las especificaciones de HTML5 y otras especificaciones relacionadas
presentan una serie de funciones que permiten que las aplicaciones web sin
conexión sean una realidad:
• caché de aplicaciones
• localStorage
• Web SQL e Indexed Database

• eventos online o sin conexión
CARACTERÍSTICAS PRINCIPALES

• W3C Web Storage
• La especificación de la W3C para el almacenamiento web ha sido diseñada
para proveer de una forma mejor y más segura de almacenar información
que el método tradicional de almacenamiento en cookies. Además el Web
Storage ofrece mayor capacidad de almacenamiento por dominio y una
mejor interfaz de acceso a los datos.
• Interfaz del lado cliente
• A diferencia del mecanismo implementado en las cookies a las que tanto el
cliente como el servidor tienen acceso, en el almacenamiento web, solo el
cliente tiene acceso a los datos. Los datos por tanto no son enviados hacia
el servidor en cada consulta HTTP, pero el servidor puede hacer peticiones
al cliente para recibir los datos que requiera.
• Tipos de almacenamiento
• El almacenamiento web ofrece dos áreas de almacenamiento diferentes, el
almacenamiento local y el almacenamiento por sesión, que difieren
en alcance y tiempo de vida.
• Los datos alojados en un almacenamiento local es solo accesible por
dominio y persiste aún cuando se cierre el navegador. El almacenamiento
por sesión es por ventana y su tiempo de vida está limitado a lo que dure la
ventana (o pestaña). Con el almacenamiento por sesión lo que se persigue
es la posibilidad de que separar instancias de la misma aplicación web para
que puedan ejecutarse en diferentes ventanas (o pestañas) sin
que interfieran entre ellas.
• Los datos son almacenados usando pares de clave/valor. Se supone que las
aplicaciones web que utilicen esta tecnología son capaces de
trabajar offline por largos periodos de tiempo
• sessionStorage
• Objeto global que mantiene un área de almacenamiento disponible a lo
largo de la duración de la sesión de la página, ventana o pestaña. La
sesión persiste mientras que la ventana permanezca abierta y sobrevive a
recargas de página. Si se abre una nueva página en una pestaña o
ventana, una nueva sesión es inicializada.
• // Guardamos el nombre del editor en el almacén de la sesión actual
• sessionStorage.setItem("editor", "Oscar Campos");
• // Accedemos a los datos almacenados
• alert("El editor es "+ sessionStorage.getItem("editor"));
• La mayoría del tiempo los sessionStorage son útiles a la hora de guardar
datos temporales que deben ser persistentes en caso de que el navegador
se refresque.
• Esto es muy útil por ejemplo en un formulario de edición de posts en un blog
donde si por casualidad pulsamos la tecla F5 el navegador se refresca
y perdemos todo nuestro post después de una hora de trabajo:
•
•
•
•
•
•
•
•
•
•

// Obtenemos el elemento que contiene el contenido del post
var content = document.getElementById("content");
// Comprobamos si existe contenido guardado
// lo cual indicaría un refresco de página accidental
if (sessionStorage.getItem("autosave")) {
content.value = sessionStorage.getItem("autosave"); }
// Guardamos el contenido del elemento cada minuto
setInterval(function() {
sessionStorage.setItem("autosave", content.value);
}, 1000*60);
• localStorage
• Los almacenes locales funcionan de la misma forma que los almacenes de
sesión con la excepción de que son capaces de almacenar los datos por
dominio y mantener persistencia más allá de la sesión actual e incluso de
que el navegador completo sea cerrado. En algunos casos como en el de
IE8 puede llegar a guardar hasta 10MB de información, si lo comparamos
con las 4k de una cookie nos entra la risa floja.
• El uso es muy similar al del sessionStorage, solo debemos añadir el dominio
con el que vamos a trabajar:
• localStorage['www.genbetadev.com'].setItem("editor", "Oscar Campos");
• Podemos hacer cosas más complejas como almacenar el número de veces
que un usuario ha visitado una página:
• localStorage['www.genbetadev.com'].setItem("visitas", parseInt(localStorage['
www.gebetadev.com'].getItem("visitas") || 0 ) + 1);
• IndexedDB/Web SQL Database
• IndexedDB es una API para almacenamiento avanzado de datos en la
parte cliente y pretende servir como mecanismo de almacenamiento de
grandes cantidades de datos estructurados que además nos provea de un
acceso de alto rendimiento a los mismos usando índices. Mientras que el
Web Storage nos es treméndamente útil para almacenar pequeñas
cantidades de datos, IndexedDB nos es útil para almacenar grandes
cantidades de datos complejos y estructurados.
• IndexedDB provee de una API para consultas asíncronas separada de
la API de consultas síncronas. Provee de transacciones y aunque solo está
soportada de momento por Chrome 11+ y Firefox 4+todos los
fabricantes han prometido implementarlo en sus productos por lo que en
breve esperamos que este completamente soportado.
• function sendLocalStatus() {
• // Leemos el estado en local
• var status = readStatus();
• // Si hay estados
• if (status) {
• // Lo enviamos al server online
• sendToServer(status);
• // Borramos la copia local
• window.localStorage.removeItem("status"); } }
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

// Evento onload
window.addEventListener("load", function() {
// Comprobamos que estemos online
if (navigator.onLine) {
// Si lo estamos enviamos datos de local // así actualizamos los cambios
hechos offline
// en nuestro servidor online
sendLocalStatus(); } }, true);
// Evento online
window.addEventListener("online", function() {
// Evento que se activa cuando detecta que estamos online
sendLocalStatus(); }, true);
// Evento offline
window.addEventListener("offline", function() {
// Evento que detecta cuando perdemos la conexión
alert("You're now offline. If you update your status, it will be sent when you
go back online"); }, true);
UTILIDAD Y BENEFICIOS
• El uso de aplicaciones web se ha enfrentado desde sus
comienzos con una importante desventaja en comparación con
las aplicaciones de escritorio, y era la posibilidad de estas
últimas de trabajar en entornos desconectados. Además, con la
utilización de dispositivos móviles, es habitual no disponer
siempre de una conexión de alta velocidad de calidad para el
uso de aplicaciones web. HTML5 aporta una importante mejora
en este aspecto para permitir la utilización de todas las
funcionalidades de las aplicaciones web “sin conexión” a través
de APIs, que sincronizan sus datos cuando la conexión entre el
dispositivo y la red se restablece.
COOKIE CLICKER
• CookieClicker es un juego hecho en Javascript lanzado por
Orteil en Agosto 10 del 2013.
• El punto del juego es hornear galletas clickeando en una
galleta gigante hasta que tengas las suficientes galletas para
comprar upgrades.
• El gameplay aparentemente infinito hace que sea un juego
que pueda durar un indeterminado tiempo de tiempo
• http://orteil.dashnet.org/cookieclicker/
LAST.FM
• Last.fm es una red social, una radio vía Internet y además un sistema de
recomendación de música que construye perfiles y estadísticas sobre
gustos musicales, basándose en los datos enviados por los usuarios
registrados.
• Un usuario de Last.fm puede construir un perfil musical usando dos
métodos: escuchando su colección musical personal en una aplicación de
música con un plugin de Audioscrobbler, o escuchando el servicio de radio
a través de Internet de Last.fm, normalmente con el reproductor de
Last.fm.
CREEMOS UNA PÁGINA WEB OFFLINE
• Revisamos si el navegador lo
soporta

• Creamos una pagina offline

if(window.applicationCache) {
// this browser supports offline applications
}
if (!window.localStorage) {
log("HTML5 Local Storage is not supported in
your browser.");
return;
}

<!DOCTYPE html>
<html manifest="application.appcache">
.
.
.
</html>
CONTENIDO DEL ARCHIVO CACHÉ
CACHE MANIFEST
# files to cache
about.html
html5.css
index.html
happy-trails-rc.gif
lake-tahoe.JPG
#do not cache signup
page
NETWORK
signup.html

FALLBACK
signup.html offline.html
/app/ajax/ default.html
REVISANDO ESTADO ONLINE
// When the page loads, set the status to online or
offline
function loadDemo() {
if (navigator.onLine) {
log("Online");
} else {
log("Offline");
}
}
// Now add event listeners to notify a change in
online status
window.addEventListener("online", function(e) {
log("Online");
}, true);
window.addEventListener("offline", function(e) {
log("Offline");
}, true);
CONCLUSIONES
• En html5 es posible tener aplicaciones offline con la privacidad necesaria del
usuario con respecto a su información, estas páginas son muy útiles para
conexiones de internet lentas y también páginas que no actualizan mucho su
contenido, o diversas necesidades ya depende del sitio.
• El tiempo de entrega estuvo bien, excepto por el inconveniente que el
profesor cambio y especificó algunos de los rubros y aspectos a evaluar en
esta presentación.
• El tiempo en promedio calculado para este trabajo en horas netas de todos
los integrantes del equipo fueron 10
EJERCICIO
• Objetivo
Aprender a manejar el estado de una aplicación web offline
• Descripción
1.- Mencione las 3 palabras reservadas para el manifiesto de cache.
2.- Reallizar una página web que tenga como archivo caché de nombre ejemplo
y cheque si el navegador soporta esta api y revisar el estado online
• Formato
-Individual
-En una hoja hecho a mano con su nombre y numero de control al principio
REFERENCIAS
•

http://blog.eltallerdigital.com/2012/05/5-ventajas-de-html5-para-los-usuarios/

•

http://www.anieto2k.com/2010/01/09/aplicaciones-web-offline-para-que-la-conexion-nosea-problema/

•

Pro HTML5 Programming / aut. Lubbers Peter, Albers Brian y Salim Frank. - [s.l.] :
Editorial Apress, 2011. - Segunda edición. - ISBN: 978-1-4302-3864-5.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

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
 
Paginas web
Paginas webPaginas web
Paginas web
 
318847501 paginas-web
318847501 paginas-web318847501 paginas-web
318847501 paginas-web
 
HTML5 en Acción
HTML5 en AcciónHTML5 en Acción
HTML5 en Acción
 
Guardar página web.
Guardar página web.Guardar página web.
Guardar página web.
 
Actividad uno
Actividad unoActividad uno
Actividad uno
 
Navegador de internet
Navegador de internetNavegador de internet
Navegador de internet
 
Juan sebastian ramirez quintero
Juan sebastian ramirez quinteroJuan sebastian ramirez quintero
Juan sebastian ramirez quintero
 
Modulo5 Trucos Web Browser
Modulo5 Trucos Web BrowserModulo5 Trucos Web Browser
Modulo5 Trucos Web Browser
 
Plataformas de desarrollo web
Plataformas de desarrollo webPlataformas de desarrollo web
Plataformas de desarrollo web
 
Desarrollo y Programacion WEB
Desarrollo y Programacion WEBDesarrollo y Programacion WEB
Desarrollo y Programacion WEB
 
Tema 1 umecit
Tema 1 umecitTema 1 umecit
Tema 1 umecit
 
Plataformas de desarrollo web
Plataformas de desarrollo web Plataformas de desarrollo web
Plataformas de desarrollo web
 
Plataformas de desarrollo web
Plataformas de desarrollo webPlataformas de desarrollo web
Plataformas de desarrollo web
 
Navegadores
NavegadoresNavegadores
Navegadores
 
Navegadores mas populares
Navegadores mas popularesNavegadores mas populares
Navegadores mas populares
 
Navegador de internet
Navegador de internetNavegador de internet
Navegador de internet
 
Tipos de plataformas web
Tipos de plataformas webTipos de plataformas web
Tipos de plataformas web
 
Browser
BrowserBrowser
Browser
 
Navegadores
NavegadoresNavegadores
Navegadores
 

Destacado

Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web ApplicationsMarkku Laine
 
Posicionamiento en internet para infobest
Posicionamiento en internet para infobestPosicionamiento en internet para infobest
Posicionamiento en internet para infobestCarlos Terrazas
 
Progressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancementProgressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancementPaul Irish
 
An Overview of HTML5 Storage
An Overview of HTML5 StorageAn Overview of HTML5 Storage
An Overview of HTML5 StoragePaul Irish
 

Destacado (8)

Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web Applications
 
Posicionamiento en internet para infobest
Posicionamiento en internet para infobestPosicionamiento en internet para infobest
Posicionamiento en internet para infobest
 
Html - Tema 1
Html - Tema 1Html - Tema 1
Html - Tema 1
 
The State of Web Type
The State of Web TypeThe State of Web Type
The State of Web Type
 
Progressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancementProgressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancement
 
An Overview of HTML5 Storage
An Overview of HTML5 StorageAn Overview of HTML5 Storage
An Overview of HTML5 Storage
 
Local storage
Local storageLocal storage
Local storage
 
Curso FPE Diseño Web. Módulo 2. El HTML
Curso FPE Diseño Web. Módulo 2. El HTMLCurso FPE Diseño Web. Módulo 2. El HTML
Curso FPE Diseño Web. Módulo 2. El HTML
 

Similar a Aplicaciones web offline HTML5

Almacenamiento web HTML5
Almacenamiento web HTML5Almacenamiento web HTML5
Almacenamiento web HTML5Javii Enriquez
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesDani Latorre
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luisyanez1814
 
6 propiedades de un sitio web
6 propiedades de un sitio web6 propiedades de un sitio web
6 propiedades de un sitio webUVM
 
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
 
PresentacióN Final Tecno Azte K Mobile Store
PresentacióN  Final  Tecno Azte K  Mobile  StorePresentacióN  Final  Tecno Azte K  Mobile  Store
PresentacióN Final Tecno Azte K Mobile Storedaniel.sierra
 
Dispositivas de informatica
Dispositivas de informaticaDispositivas de informatica
Dispositivas de informaticaagi1992
 
Codemotion 2013 Desarrollo de apps móviles multiplataforma
Codemotion 2013  Desarrollo de apps móviles multiplataformaCodemotion 2013  Desarrollo de apps móviles multiplataforma
Codemotion 2013 Desarrollo de apps móviles multiplataformaJose Manuel Ortega Candel
 
Aplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScriptAplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScriptLuis Guerrero
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luisyanez1814
 
#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.pptJ T "Tom" Johnson
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guestd24c393
 
Plataformas del comercio electronico
Plataformas del comercio electronicoPlataformas del comercio electronico
Plataformas del comercio electronicogloroma
 
Cloud Storage, Almacenamiento en la nube
Cloud Storage, Almacenamiento en la nubeCloud Storage, Almacenamiento en la nube
Cloud Storage, Almacenamiento en la nubeJesús Moreno León
 
Programación Reactiva, Javascript Isomorfo y Meteorjs !
Programación Reactiva, Javascript Isomorfo y Meteorjs !Programación Reactiva, Javascript Isomorfo y Meteorjs !
Programación Reactiva, Javascript Isomorfo y Meteorjs !ouuyeah
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con JavaEudris Cabrera
 
1 - Curso de Navegación Segura - Conceptos sobre navegadores
1 - Curso de Navegación Segura - Conceptos sobre navegadores1 - Curso de Navegación Segura - Conceptos sobre navegadores
1 - Curso de Navegación Segura - Conceptos sobre navegadoresJavier Navarro
 

Similar a Aplicaciones web offline HTML5 (20)

Almacenamiento web HTML5
Almacenamiento web HTML5Almacenamiento web HTML5
Almacenamiento web HTML5
 
La Caché
La CachéLa Caché
La Caché
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernes
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
 
6 propiedades de un sitio web
6 propiedades de un sitio web6 propiedades de un sitio web
6 propiedades de un sitio web
 
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...
 
PresentacióN Final Tecno Azte K Mobile Store
PresentacióN  Final  Tecno Azte K  Mobile  StorePresentacióN  Final  Tecno Azte K  Mobile  Store
PresentacióN Final Tecno Azte K Mobile Store
 
Dispositivas de informatica
Dispositivas de informaticaDispositivas de informatica
Dispositivas de informatica
 
Curso de php
Curso de phpCurso de php
Curso de php
 
Codemotion 2013 Desarrollo de apps móviles multiplataforma
Codemotion 2013  Desarrollo de apps móviles multiplataformaCodemotion 2013  Desarrollo de apps móviles multiplataforma
Codemotion 2013 Desarrollo de apps móviles multiplataforma
 
Aplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScriptAplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScript
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
 
#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
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Charla ie
Charla ieCharla ie
Charla ie
 
Plataformas del comercio electronico
Plataformas del comercio electronicoPlataformas del comercio electronico
Plataformas del comercio electronico
 
Cloud Storage, Almacenamiento en la nube
Cloud Storage, Almacenamiento en la nubeCloud Storage, Almacenamiento en la nube
Cloud Storage, Almacenamiento en la nube
 
Programación Reactiva, Javascript Isomorfo y Meteorjs !
Programación Reactiva, Javascript Isomorfo y Meteorjs !Programación Reactiva, Javascript Isomorfo y Meteorjs !
Programación Reactiva, Javascript Isomorfo y Meteorjs !
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 
1 - Curso de Navegación Segura - Conceptos sobre navegadores
1 - Curso de Navegación Segura - Conceptos sobre navegadores1 - Curso de Navegación Segura - Conceptos sobre navegadores
1 - Curso de Navegación Segura - Conceptos sobre navegadores
 

Último

Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 

Último (20)

Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 

Aplicaciones web offline HTML5

  • 1. APLICACIONES WEB OFFLINE En HTML5 Prieto Chaparro Noé Aarón – 10410555 Nassi Torres Guillermo Alberto – 10410515 05 Feb 2014
  • 2. MARCO CONCEPTUAL • "Web" y "online" son dos términos que están muy relacionados entre sí, y muchas personas los consideran incluso sinónimos. Por tanto, ¿por qué hablamos de tecnologías web "offline" (sin conexión) y qué significa este término? • Las especificaciones de HTML5 y otras especificaciones relacionadas presentan una serie de funciones que permiten que las aplicaciones web sin conexión sean una realidad: • caché de aplicaciones • localStorage • Web SQL e Indexed Database • eventos online o sin conexión
  • 3. CARACTERÍSTICAS PRINCIPALES • W3C Web Storage • La especificación de la W3C para el almacenamiento web ha sido diseñada para proveer de una forma mejor y más segura de almacenar información que el método tradicional de almacenamiento en cookies. Además el Web Storage ofrece mayor capacidad de almacenamiento por dominio y una mejor interfaz de acceso a los datos.
  • 4. • Interfaz del lado cliente • A diferencia del mecanismo implementado en las cookies a las que tanto el cliente como el servidor tienen acceso, en el almacenamiento web, solo el cliente tiene acceso a los datos. Los datos por tanto no son enviados hacia el servidor en cada consulta HTTP, pero el servidor puede hacer peticiones al cliente para recibir los datos que requiera.
  • 5. • Tipos de almacenamiento • El almacenamiento web ofrece dos áreas de almacenamiento diferentes, el almacenamiento local y el almacenamiento por sesión, que difieren en alcance y tiempo de vida. • Los datos alojados en un almacenamiento local es solo accesible por dominio y persiste aún cuando se cierre el navegador. El almacenamiento por sesión es por ventana y su tiempo de vida está limitado a lo que dure la ventana (o pestaña). Con el almacenamiento por sesión lo que se persigue es la posibilidad de que separar instancias de la misma aplicación web para que puedan ejecutarse en diferentes ventanas (o pestañas) sin que interfieran entre ellas. • Los datos son almacenados usando pares de clave/valor. Se supone que las aplicaciones web que utilicen esta tecnología son capaces de trabajar offline por largos periodos de tiempo
  • 6. • sessionStorage • Objeto global que mantiene un área de almacenamiento disponible a lo largo de la duración de la sesión de la página, ventana o pestaña. La sesión persiste mientras que la ventana permanezca abierta y sobrevive a recargas de página. Si se abre una nueva página en una pestaña o ventana, una nueva sesión es inicializada. • // Guardamos el nombre del editor en el almacén de la sesión actual • sessionStorage.setItem("editor", "Oscar Campos"); • // Accedemos a los datos almacenados • alert("El editor es "+ sessionStorage.getItem("editor")); • La mayoría del tiempo los sessionStorage son útiles a la hora de guardar datos temporales que deben ser persistentes en caso de que el navegador se refresque.
  • 7. • Esto es muy útil por ejemplo en un formulario de edición de posts en un blog donde si por casualidad pulsamos la tecla F5 el navegador se refresca y perdemos todo nuestro post después de una hora de trabajo: • • • • • • • • • • // Obtenemos el elemento que contiene el contenido del post var content = document.getElementById("content"); // Comprobamos si existe contenido guardado // lo cual indicaría un refresco de página accidental if (sessionStorage.getItem("autosave")) { content.value = sessionStorage.getItem("autosave"); } // Guardamos el contenido del elemento cada minuto setInterval(function() { sessionStorage.setItem("autosave", content.value); }, 1000*60);
  • 8. • localStorage • Los almacenes locales funcionan de la misma forma que los almacenes de sesión con la excepción de que son capaces de almacenar los datos por dominio y mantener persistencia más allá de la sesión actual e incluso de que el navegador completo sea cerrado. En algunos casos como en el de IE8 puede llegar a guardar hasta 10MB de información, si lo comparamos con las 4k de una cookie nos entra la risa floja. • El uso es muy similar al del sessionStorage, solo debemos añadir el dominio con el que vamos a trabajar: • localStorage['www.genbetadev.com'].setItem("editor", "Oscar Campos"); • Podemos hacer cosas más complejas como almacenar el número de veces que un usuario ha visitado una página: • localStorage['www.genbetadev.com'].setItem("visitas", parseInt(localStorage[' www.gebetadev.com'].getItem("visitas") || 0 ) + 1);
  • 9. • IndexedDB/Web SQL Database • IndexedDB es una API para almacenamiento avanzado de datos en la parte cliente y pretende servir como mecanismo de almacenamiento de grandes cantidades de datos estructurados que además nos provea de un acceso de alto rendimiento a los mismos usando índices. Mientras que el Web Storage nos es treméndamente útil para almacenar pequeñas cantidades de datos, IndexedDB nos es útil para almacenar grandes cantidades de datos complejos y estructurados. • IndexedDB provee de una API para consultas asíncronas separada de la API de consultas síncronas. Provee de transacciones y aunque solo está soportada de momento por Chrome 11+ y Firefox 4+todos los fabricantes han prometido implementarlo en sus productos por lo que en breve esperamos que este completamente soportado.
  • 10. • function sendLocalStatus() { • // Leemos el estado en local • var status = readStatus(); • // Si hay estados • if (status) { • // Lo enviamos al server online • sendToServer(status); • // Borramos la copia local • window.localStorage.removeItem("status"); } }
  • 11. • • • • • • • • • • • • • • • // Evento onload window.addEventListener("load", function() { // Comprobamos que estemos online if (navigator.onLine) { // Si lo estamos enviamos datos de local // así actualizamos los cambios hechos offline // en nuestro servidor online sendLocalStatus(); } }, true); // Evento online window.addEventListener("online", function() { // Evento que se activa cuando detecta que estamos online sendLocalStatus(); }, true); // Evento offline window.addEventListener("offline", function() { // Evento que detecta cuando perdemos la conexión alert("You're now offline. If you update your status, it will be sent when you go back online"); }, true);
  • 12. UTILIDAD Y BENEFICIOS • El uso de aplicaciones web se ha enfrentado desde sus comienzos con una importante desventaja en comparación con las aplicaciones de escritorio, y era la posibilidad de estas últimas de trabajar en entornos desconectados. Además, con la utilización de dispositivos móviles, es habitual no disponer siempre de una conexión de alta velocidad de calidad para el uso de aplicaciones web. HTML5 aporta una importante mejora en este aspecto para permitir la utilización de todas las funcionalidades de las aplicaciones web “sin conexión” a través de APIs, que sincronizan sus datos cuando la conexión entre el dispositivo y la red se restablece.
  • 13. COOKIE CLICKER • CookieClicker es un juego hecho en Javascript lanzado por Orteil en Agosto 10 del 2013. • El punto del juego es hornear galletas clickeando en una galleta gigante hasta que tengas las suficientes galletas para comprar upgrades. • El gameplay aparentemente infinito hace que sea un juego que pueda durar un indeterminado tiempo de tiempo • http://orteil.dashnet.org/cookieclicker/
  • 14. LAST.FM • Last.fm es una red social, una radio vía Internet y además un sistema de recomendación de música que construye perfiles y estadísticas sobre gustos musicales, basándose en los datos enviados por los usuarios registrados. • Un usuario de Last.fm puede construir un perfil musical usando dos métodos: escuchando su colección musical personal en una aplicación de música con un plugin de Audioscrobbler, o escuchando el servicio de radio a través de Internet de Last.fm, normalmente con el reproductor de Last.fm.
  • 15. CREEMOS UNA PÁGINA WEB OFFLINE • Revisamos si el navegador lo soporta • Creamos una pagina offline if(window.applicationCache) { // this browser supports offline applications } if (!window.localStorage) { log("HTML5 Local Storage is not supported in your browser."); return; } <!DOCTYPE html> <html manifest="application.appcache"> . . . </html>
  • 16. CONTENIDO DEL ARCHIVO CACHÉ CACHE MANIFEST # files to cache about.html html5.css index.html happy-trails-rc.gif lake-tahoe.JPG #do not cache signup page NETWORK signup.html FALLBACK signup.html offline.html /app/ajax/ default.html
  • 17. REVISANDO ESTADO ONLINE // When the page loads, set the status to online or offline function loadDemo() { if (navigator.onLine) { log("Online"); } else { log("Offline"); } } // Now add event listeners to notify a change in online status window.addEventListener("online", function(e) { log("Online"); }, true); window.addEventListener("offline", function(e) { log("Offline"); }, true);
  • 18. CONCLUSIONES • En html5 es posible tener aplicaciones offline con la privacidad necesaria del usuario con respecto a su información, estas páginas son muy útiles para conexiones de internet lentas y también páginas que no actualizan mucho su contenido, o diversas necesidades ya depende del sitio. • El tiempo de entrega estuvo bien, excepto por el inconveniente que el profesor cambio y especificó algunos de los rubros y aspectos a evaluar en esta presentación. • El tiempo en promedio calculado para este trabajo en horas netas de todos los integrantes del equipo fueron 10
  • 19. EJERCICIO • Objetivo Aprender a manejar el estado de una aplicación web offline • Descripción 1.- Mencione las 3 palabras reservadas para el manifiesto de cache. 2.- Reallizar una página web que tenga como archivo caché de nombre ejemplo y cheque si el navegador soporta esta api y revisar el estado online • Formato -Individual -En una hoja hecho a mano con su nombre y numero de control al principio