47 votes

Application en mode hors connexion dans un navigateur (HTML5) possible?

Est-il possible de construire une application à l'intérieur dans le navigateur? Une application signifie:

1 Où il y a connexion (mode en ligne) entre le navigateur et un serveur d'application distant:

  • l'application s'exécute dans le web-based mode
  • l'application stocke nécessaire des données dans le stockage hors ligne, pour être utilisé en mode hors ligne (2)
  • l'application de synchronisation/push de données (capturé pendant le mode hors ligne) vers le serveur quand il est repris à partir hors de mode en mode en ligne

2 Où il n'y a pas de connexion (mode hors ligne) entre le navigateur et un serveur d'application distant:

  • l'application continue à fonctionner (javascript?)
  • l'application va présenter les données (qui sont stockées hors ligne) à l'utilisateur
  • l'application peut autoriser la saisie de l'utilisateur (et magasin/ajout dans le stockage hors-ligne)

Est-ce possible? Si la réponse est oui, est-il (Ruby/Python/PHP) - cadre en cours de construction?

Merci

41voto

wump Points 2499

Oui, c'est possible.

  • Vous avez besoin d'écrire l'application en Javascript, et de détecter en quelque sorte, si le navigateur est en mode hors-ligne (la plus simple est d'interroger un serveur de temps en temps). (Edit: voir les commentaires pour une meilleure façon de détecter le mode hors connexion)

  • Assurez-vous que votre application se compose de seulement statique HTML, fichiers CSS et Js (ou de définir la stratégie de mise en cache manuellement dans votre script, de sorte que votre navigateur ne vous rappelez-vous en mode hors ligne). Les mises à jour de la page se fait par le biais de JS de manipulation du DOM, sans passer par le serveur (un cadre comme ExtJS http://www.extjs.com va vous aider ici)

  • Pour le stockage, l'utilisation d'un module comme PersistJS ( http://github.com/jeremydurham/persist-js ), qui utilise le stockage local du navigateur pour conserver une trace des données. Lorsque la connexion est rétablie, la synchronisation avec le serveur.

  • Vous devez vous pré-cache des images et d'autres actifs utilisés, otherwse ils ne seront pas disponibles en mode hors connexion si vous ne les utilisez pas avant.

  • Nouveau: l'essentiel de votre application doit être en javascript, PHP/Ruby/Python cadre vous aidera à petit si le serveur est inaccessible. Le serveur est probablement le plus simple possible, un RESTE-comme AJAX API pour stocker et charger les données.

15voto

hasseg Points 5440

Le chapitre "Let's Take Off Off" du livre (en ligne) Dive Into HTML5 de Mark Pilgrim est un très bon aperçu de l'écriture d'applications Web hors connexion avec les technologies HTML5.

Remarque: le lien original Dive Into HTML5 de Mark Pilgrim semble être en panne.

Des copies peuvent maintenant être trouvés ici parmi d'autres endroits.

1voto

Nickolay Points 14384

0voto

Jiew Meng Points 10155

j'ai été à la recherche pour ce travail, j'ai découvert abt HTML5 Hors-ligne les Web-Apps. havent essayé tho

Les utilisateurs typiques en ligne, les applications Web sont seulement en mesure d'utiliser les applications alors qu'ils ont une connexion à Internet. Quand ils vont en mode hors connexion, ils ne peuvent plus consulter leurs e-mails, naviguer sur rendez-vous du calendrier, ou de préparer des exposés avec leurs outils en ligne. Pendant ce temps, les applications natives de fournir ces caractéristiques: e-mail clients des dossiers cache localement, des calendriers de stocker leurs événements localement, des plaquettes de présentation de stocker leurs fichiers de données localement.

-1voto

seanlinmt Points 3032

Consultez Google Gears, http://code.google.com/apis/gears/ . Bien qu'ils aient été éliminés au profit de HTML5. Cependant, il semble que Google Gears soit préconisé en tant que HTML5.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X