uso - ¿Aplicación de modo sin conexión en un navegador(HTML5) posible?
manifest cache manifest (8)
Aquí hay un artículo de hacks.mozilla.org con una demostración: http://hacks.mozilla.org/2010/01/offline-web-applications/
Documentación más detallada: https://developer.mozilla.org/en/HTML/HTML5#Web_application_features
¿Es posible construir una aplicación dentro del navegador? Una aplicación significa:
1 Donde hay conexión (modo en línea) entre el navegador y un servidor de aplicaciones remoto:
- La aplicación se ejecuta en modo típico basado en web
- la aplicación almacena los datos necesarios en el almacenamiento fuera de línea, que se utilizará en modo fuera de línea (2)
- los datos de sincronización / inserción de la aplicación (capturados durante el modo fuera de línea) al servidor cuando se reanuda desde el modo fuera de línea al modo en línea
2 Donde no hay conexión (modo fuera de línea) entre el navegador y un servidor de aplicaciones remoto:
- la aplicación todavía se ejecutará (javascript?)
- La aplicación presentará los datos (que se almacenan fuera de línea) al usuario.
- la aplicación puede aceptar entradas del usuario (y almacenar / agregar en almacenamiento sin conexión)
es posible? Si la respuesta es afirmativa, ¿se está construyendo un marco (Ruby / Python / PHP)?
Gracias
Eche un vistazo a Google Gears, http://code.google.com/apis/gears/ . Aunque se han eliminado paulatinamente a favor de HTML5. Sin embargo, parece que lo que se está impulsando como HTML5 es Google Gears.
El capítulo "Vamos a tomar esto fuera de línea" en el libro (en línea) Dive Into HTML5 de Mark Pilgrim es una muy buena descripción general de cómo escribir aplicaciones web sin conexión con tecnologías HTML5.
Nota: ya que el enlace Dive Into HTML5 original de Mark Pilgrim parece estar caído.
Las copias ahora se pueden encontrar here entre otros lugares.
Jake Archibald escribió "El libro de cocina fuera de línea". Un enfoque moderno (9 de diciembre de 2014) y agradable con ServiceWorker:
Javascript te da una opción para el modo de sitio web sin conexión y se llama UpUp Javascript Framework . Una pequeña secuencia de comandos que garantiza que su sitio esté siempre disponible para sus usuarios, incluso cuando están en avión o 20,000 leguas bajo el mar.
<html>
<head>
<meta charset="UTF-8">
<title>Lonely Globe Advisor</title>
</head>
<body>
<h1>Top Hotels in Rome</h1>
<ol>
<li>Villa Domus - Via Piacenza 9, Rome, Italy</li>
<li>Hotel Trivelli - Piazza Barberini 11, Rome, Italy</li>
</ol>
<script src="/upup.min.js"></script>
<script>
UpUp.start({
''content-url'': ''offline.html'',
''assets'': [''css/bootstrap.min.css'', ''css/offline.css'']
});
</script>
</body>
</html>
Ahora el contenido que ven nuestros usuarios cuando están fuera de línea, es el contenido de offline.html . Este es solo un simple archivo HTML, no diferente a cualquier otra página de nuestro sitio.
Nuestro archivo offline.html contiene dos archivos css: bootstrap.min.css y offline.css . Asegurémonos de que estén en caché y disponibles para nuestros usuarios cuando estén fuera de línea
La respuesta en 2018 es aprovechar el trabajador de servicios y crear una aplicación web progresiva: https://developers.google.com/web/progressive-web-apps/
Sí, eso es posible.
Debe escribir la aplicación en Javascript y detectar de alguna manera si el navegador está en modo fuera de línea (lo más simple es sondear un servidor de vez en cuando). (Editar: ver comentarios para una mejor manera de detectar el modo fuera de línea)
Asegúrese de que su aplicación solo contenga archivos estáticos HTML, Js y CSS (o establezca la política de almacenamiento en caché manualmente en su script para que su navegador los recuerde en el modo sin conexión). Las actualizaciones de la página se realizan mediante la manipulación de JS DOM, no a través del servidor (un marco como ExtJS http://www.extjs.com lo ayudará aquí)
Para el almacenamiento, use un módulo como PersistJS ( http://github.com/jeremydurham/persist-js ), que utiliza el almacenamiento local del navegador para realizar un seguimiento de los datos. Cuando se restaura la conexión, sincronizar con el servidor.
Debe pre-guardar en caché las imágenes y otros recursos utilizados, de lo contrario no estarán disponibles en el modo fuera de línea si no los usó antes.
Nuevamente: la mayor parte de su aplicación debe estar en javascript, un marco PHP / Ruby / Python lo ayudará poco si el servidor no está disponible. El servidor probablemente se mantenga lo más simple posible, una API AJAX tipo REST para almacenar y cargar datos.
También estaba buscando esto, descubrí Abt HTML5 Offline Web Apps . no lo he intentado aunque
Los usuarios de aplicaciones web en línea típicas solo pueden usar las aplicaciones mientras tienen una conexión a Internet. Cuando se desconectan, ya no pueden consultar su correo electrónico, consultar sus citas del calendario o preparar presentaciones con sus herramientas en línea. Mientras tanto, las aplicaciones nativas proporcionan esas características: las carpetas de caché de los clientes de correo electrónico localmente, los calendarios almacenan sus eventos localmente, los paquetes de presentación almacenan sus archivos de datos localmente.