Comment mettre en cache des images et des fichiers HTML dans PhoneGap
J'ai besoin d'un moyen pour le cache des images et des fichiers html dans PhoneGap à partir de mon site. Je prévois que les utilisateurs vont voir site sans connexion internet comme il sera avec elle. Mais je vois uniquement des informations sur le stockage de données sql, mais comment puis-je stocker des images et les utiliser plus tard).
source d'informationauteur SPnova
Vous devez vous connecter pour publier un commentaire.
De mise en cache que vous pourriez avoir besoin pour la simple opération hors ligne n'est pas exactement facile.
Votre première option est la manifeste de cache. Il a quelques limitations (comme la taille de la mémoire cache), mais pourrait fonctionner pour vous, car il a été conçu pour faire ce que vous voulez.
Une autre option est que vous pouvez stocker le contenu sur le disque dur de l'appareil à l'aide de l'Api du système de fichiers. Cela a quelques inconvénients, tels que la sécurité et le fait que vous devez charger le fichier à partir d'un chemin d'accès /url différent de ce que vous pourriez normalement charger à partir sur le web. Découvrez la hydra plugin pour un exemple de cette.
Une dernière option pourrait être pour stocker des choses dans localStorage (qui a l'avantage d'être privé sur toutes les plateformes) et ensuite, de le sortir de là quand on a besoin ... ce qui signifie en base64 avec toutes vos images tho ce qui est un assez grand départ de standards de mise en cache.
Pour mettre en cache les images découvrez cette bibliothèque, dont je suis le créateur:
imgcache.js
. Il est conçu pour le but de la mise en cache des images à l'aide du système de fichiers local. Si vous cherchez des exemples, vous verrez qu'il est également capable de détecter lorsqu'une image ne parvient pas à être chargé (parce que vous êtes hors connexion, ou vous avez une très mauvaise connexion), puis le remplace automatiquement avec l'image de cache. L'utilisateur de l'application web n'a pas le même avis, il est hors ligne.
Comme pour les pages html.. si ils sont statiques html fichiers, ils peuvent être stockés localement dans l'application web (file://phonegap).
Si ils sont les pages générées dynamiquement, vérifier l'API localStorage si vous avez une petite quantité de données, sinon le système de fichiers de l'API.
Pour mon application web, je ne récupérer que les données json à partir de mon serveur (et de processus/de rendu en utilisant Épine dorsale+trait de Soulignement). La charge utile json est stocké dans le localStorage. Si l'application est en mode hors connexion, il va chercher les données json à partir du localStorage au lieu du serveur (la maison-cuit à la fourche de la colonne vertébrale.dualStorage)
Vous alors d'obtenir la pleine expérience hors ligne: pages+images.
La mise en cache est très possible sur Android OS. mais sur Apple comme indiqué ci-dessus il y a des limites à la taille des images et de la taille du cache etc.
Si vous êtes prêt à intégrer et à permettre la mise en cache sur iOS, vous pouvez utiliser le "manifeste de cache" pour le faire. mais gardez le tirage dos et les limitations de l'esprit.
Aussi
si vous souhaitez enregistrer le fichier dans le dossier Documents en vertu de l'une de mes applications, Apple refusera votre Application. La raison en est le système de sauvegarde de toutes les données sous dossier de Documents à iCould après iOS6, Apple ne permet pas de big data comme des images ou fichier JSON qui pourrait synchroniser à partir de votre serveur à maintenir dans ce dossier.
Donc il y a un autre travail autour de ce qui est bon à ce que l'on peut utiliser LocalFileSystem.TEMPORAIRE à la place. Il n'enregistre pas les données de Bibliothèque/mémoire Cache, mais il enregistrer les données dans un dossier temp de l'Application, qui n'a pas été automatique de sauvegarde sur iCloud et pas automatiquement supprimé.
Ce qui concerne
Rajeev