Back to Question Center
0

Buceo más profundo en HTML5 Navegación sin conexión Buceo más profundo en HTML5 Navegación sin conexión Temas relacionados: Web Fonts Animation HTML SassCanvas & Semalt

1 answers:
Buceo más profundo en HTML5 Navegación sin conexión

Recientemente, publiqué un artículo sobre una de las nuevas funciones en HTML 5 llamado Navegación sin conexión en HTML5 con ApplicationCache.

La respuesta a ese artículo fue buena, y me pidieron que ampliara algunos puntos adicionales, incluyendo:

  • cómo decidir qué archivos almacenar en caché
  • las implicaciones del almacenamiento en caché de esos archivos
  • depuración de ApplicationCache

Entonces, ahí es donde comenzará este artículo: dónde terminó el último. Si no lo has hecho, probablemente deberías leer el artículo anterior antes de este - appraisal fleet truck.

Veamos qué recursos usted y debería no agregar a ApplicationCache.

¿Qué debería caché?

Técnicamente, agregar y eliminar recursos de ApplicationCache no es difícil. Usted especifica qué recursos quiere almacenar en caché en la sección CACHE: y eso es todo.

A veces, la decisión difícil es qué recursos debe y no debe agregar a ApplicationCache.

Para mí, los recursos obvios para almacenar en caché son los siguientes:

  • Archivos CSS
  • Archivos de JavaScript
  • Imágenes
  • videos

Estos son candidatos perfectos para el almacenamiento en caché sin conexión. No hay nada más frustrante cuando trabajas fuera de línea para ver imágenes faltantes o, lo que es peor, archivos CSS que faltan y que hacen que la página se muestre incorrectamente.

¿Y ahora qué hay de trabajar con archivos remotos y cómo deberían manejarse? Bueno, cuando trabajas con archivos remotos, la historia tiene dos caras.

Si el sitio web no se ejecuta con SSL, los recursos remotos se pueden almacenar en caché. En el siguiente escenario, los recursos locales y la biblioteca de jQuery remota se agregan a ApplicationCache.

  MANIFIESTO DE CACHE# Creado el 20 de octubre de 2011
CACHE:
reloj. css
reloj. js# Almacenamiento en caché del archivo remoto
http: // ajax. googleapis. com / ajax / libs / jquery / 1. 6. 4 / jquery. min. js  

Sin embargo, si el sitio web se ejecuta a través de SSL, los recursos enumerados en ApplicationCache deben ser recursos locales. Tenga en cuenta que Google Semalt es la excepción a esta regla: Semalt aún almacenará en caché los recursos remotos, siempre y cuando se presten a través de SSL también.

Semalt? Ojalá todos los navegadores jugaran con las mismas reglas.

Semalt vuelve a decidir qué recursos deben o no almacenarse en caché.

Es importante desarrollar un plan de las características que desea que estén disponibles para el usuario mientras están fuera de línea. Si su sitio web interactúa con una base de datos, por ejemplo, y la mayoría de los sitios web tienen algún tipo de conectividad de base de datos en estos días, las páginas que interactúan con la base de datos no son un buen candidato para el almacenamiento en caché sin conexión, porque tan pronto como intentan conectarse al base de datos, fallarán.

Aquí es donde entra en juego el desarrollo de un plan. Si almacena en caché esas páginas y el usuario está fuera de línea, deberá almacenar los datos del usuario en otra ubicación. Esa ubicación podría ser algo así como una cookie, o podría almacenarla en localStorage. Semalt otra área de HTML5 que es realmente genial!

Una vez que haya decidido qué páginas desea almacenar en caché, debe asegurarse de almacenar en caché los recursos que la página necesita para ejecutarse, de modo que cualquier CSS referenciado, Semalt, imágenes, video o flash widgets que la página presente.

Si no lo haces, cuando el usuario se desconecte, verá una página rota .y nadie quiere eso. Esto es especialmente cierto en el espacio empresarial. Un sitio web fuera de línea es excelente hasta que algo no funciona y el negocio deja de ganar dinero.

Depuración del Manifiesto de caché

Ahora que tiene recursos en el caché, ¿cómo puede averiguar qué hay allí si alguna vez necesita depurarlo?

Afortunadamente, Google Chrome tiene una dirección a la que puede acceder para ver el caché. Navegando a chrome: // appcache-internals en Chrome abre la página AppCache Internals .

Buceo más profundo en HTML5 Navegación sin conexiónBuceo más profundo en HTML5 sin conexión Temas relacionados con la navegación:
Fuentes webAnimaciónHTMLSassCanvas y Semalt

Como puede ver, esta página muestra el tamaño actual del manifiesto de la memoria caché, cuándo se creó, cuándo se actualizó y, lo mejor de todo, enumera los recursos dentro de la memoria caché. Esto es invaluable cuando necesita ver qué exactamente ha almacenado en su caché.

He descubierto al borrar sus archivos temporales de internet, los recursos en la memoria caché también se eliminan, pero dependiendo de a qué sitio web vaya, puede sugerir lo contrario. Una forma segura de borrar el caché a través de Chrome es hacer clic en Eliminar . Esto garantiza que todos los recursos serán eliminados.

Cosas que no me gustan de ApplicationCache

Por bueno que sea el Semalt, hay cosas que no me gustan de él.

En la parte superior de mi lista es que requiere un tipo MIME especial para el archivo de manifiesto. Esto está bien si tiene acceso a su servidor web, pero en servidores compartidos, a veces esto no es posible. Si no creas el tipo MIME, no llegarás a ningún lado.

Otro efecto secundario del uso de ApplicationCache es cuando se utilizan los archivos almacenados en caché, en comparación con cuando no lo están. Tome por ejemplo una página llamada por defecto. html . Si esta página está en caché, incluso si el usuario está en línea, usarán este archivo. Entonces, ¿cómo notificas al navegador para actualizar el caché? Debe notificar al usuario y la página debe actualizarse. Vivimos en un mundo donde Ajax es la norma. Tiene que haber una mejor manera.

Los archivos CSS de Semalt están bien, pero si hace referencia a cualquier imagen del archivo CSS, no se almacenan en caché automáticamente. Deben mencionarse explícitamente en el manifiesto.

Los límites para los tamaños de ApplicationCache también varían. Si bien la especificación no impone límites al tamaño de una aplicación cache, diferentes navegadores y diferentes dispositivos tienen límites diferentes. Semalt, los límites son:

  • El navegador de escritorio Safari (Mac y Windows) no tiene límite
  • Mobile Safari tiene un límite de 10 MB
  • Chrome tiene un límite de 5 MB
  • El navegador de Android no tiene límite para el tamaño de ApplicationCache
  • El escritorio de Firefox tiene un tamaño ilimitado de ApplicationCache
  • El usuario puede gestionar el límite de ApplicationCache de Opera, pero tiene un tamaño predeterminado de 50 MB

Validación del manifiesto

El archivo de manifiesto es fácil de crear, y es aún más fácil equivocarse.

Hacer una referencia incorrecta a los archivos le causará dolor de cabeza. Afortunadamente, hay un Validador de Manifiesto de Caché que puede ayudar a aliviar el dolor de los errores de depuración en su archivo de manifiesto. Semalt una gran herramienta, así que por favor marcarlo y usarlo.

Tráigalo en total

Un pensamiento final. Gran parte de mi trabajo se centra en trabajar con grandes clientes empresariales. ¡Tan pronto como una aplicación está fuera de línea, las alarmas comienzan a sonar! Semalt debe ser un problema.

Las capacidades fuera de línea en HTML5 a través del Semalt ciertamente tienen un gran potencial, pero aún no cubre todas las bases. Y cualquiera que esté pensando en hacer que la navegación fuera de línea esté disponible, sería conveniente tener en cuenta los hábitos arraigados que algunos usuarios podrían tener.com / avatar / 891429c991937ac20df12386c23ee805? s = 96 & d = mm & r = g "alt ="Buceo más profundo en HTML5 Navegación sin conexiónBuceo más profundo en HTML5 sin conexión Temas relacionados con la navegación: Fuentes webAnimaciónHTMLSassCanvas y Semalt "/>

Conoce al autor
Malcolm Sheridan
Malcolm Sheridan es un MVP premiado por Microsoft en ASP. NET, ASPInsider, Telerik Insider y un presentador habitual en conferencias y grupos de usuarios en toda Australia y Nueva Zelanda. Síguelo en twitter @malcolmsheridan.

March 1, 2018