una recursos publica política plugin navegador htaccess estáticos especificar eficaz con caché aprovechar almacenamiento caching cordova

caching - recursos - Cómo almacenar en caché imágenes y archivos html en PhoneGap



publica recursos estáticos con una política de caché eficaz htaccess (3)

El almacenamiento en caché es muy posible en el sistema operativo Android. pero en Apple, como se indicó anteriormente, hay limitaciones con el tamaño de las imágenes y el tamaño del caché, etc.

Si está dispuesto a integrar y permitir el almacenamiento en caché en iOS, puede usar el "manifiesto de caché" para hacerlo. pero tenga en cuenta los inconvenientes y las limitaciones. Además, si desea guardar el archivo en la carpeta Documentos de mi aplicación, Apple rechazará su aplicación. La razón es que el sistema realiza una copia de seguridad de todos los datos en la carpeta Documentos a iCould después de iOS6, por lo que Apple no permite grandes datos como imágenes o archivos JSON que podrían sincronizarse desde su servidor nuevamente para mantenerlos en esta carpeta.

Así que hay otro trabajo que es bueno, así que uno puede usar LocalFileSystem.TEMPORARY en su lugar. No guarda los datos en la Biblioteca / Caché, pero guarda los datos en la carpeta temporal de la Aplicación, que no se ha copiado automáticamente en iCloud y tampoco se ha eliminado automáticamente.

Saludos Rajeev

Necesito una forma de almacenar imágenes de caché y archivos html en PhoneGap desde mi sitio. Estoy planeando que los usuarios vean el sitio sin conexión a Internet como si estuviera con él. Pero solo veo información sobre el almacenamiento de datos SQL, pero cómo puedo almacenar imágenes (y usarlas más adelante).


El almacenamiento en caché que podría necesitar para una operación sin conexión simple no es exactamente tan fácil.

Su primera opción es el manifiesto de caché . Tiene algunas limitaciones (como el tamaño del caché), pero podría funcionar para usted, ya que fue diseñado para hacer lo que quiere.

Otra opción es que puede almacenar contenido en el disco del dispositivo utilizando las API del sistema de archivos. Esto tiene algunos inconvenientes, como la seguridad y el hecho de que tiene que cargar el archivo desde una ruta / url que es diferente de lo que normalmente se carga en la web. Echa un vistazo al plugin hydra para un ejemplo de esto.

Una última opción podría ser almacenar cosas en localStorage (que tiene el beneficio de ser privado en todas las plataformas) y luego sacarlas de allí cuando sea necesario ... eso significa basar todas tus imágenes, así que es una gran partida de sólo el almacenamiento en caché estándar.


Para almacenar imágenes en la memoria caché, echa un vistazo a esta biblioteca, de la que soy el creador: imgcache.js . Está diseñado para el propósito de almacenar imágenes en caché utilizando el sistema de archivos local. Si revisa los ejemplos, verá que también puede detectar cuándo no se puede cargar una imagen (porque está desconectado o tiene una conexión muy mala) y luego la reemplaza automáticamente con la imagen almacenada en caché. El usuario de la aplicación web ni siquiera nota que está desconectado.

En cuanto a las páginas html ... si son archivos estáticos html, podrían almacenarse localmente en la aplicación web (archivo: // en phonegap). Si son páginas generadas dinámicamente, verifique la API localStorage si tiene una pequeña cantidad de datos, de lo contrario la API del sistema de archivos.

Para mi aplicación web, solo recupero datos json de mi servidor (y los proceso / renderizo utilizando Backbone + Underscore). La carga json se almacena en el localStorage. Si la aplicación se desconecta, recuperará los datos json del localStorage en lugar del servidor (bifurcación casera de Backbone.dualStorage)

A continuación, obtiene la experiencia sin conexión completa: páginas + imágenes.