¿Cuál es el punto de?
Ya existe una técnica bien establecida llamada almacenamiento en caché del lado del cliente. ¿Qué aporta el almacenamiento local HTML5 en este caso qué almacenamiento en caché falta?
Es posible que tenga algún tipo de aplicación extraña que debe cargar trozos de código JavaScript dinámicamente para que no pueda usar la caché de manera efectiva, pero es un caso extremadamente raro.
Además, tenga en cuenta otra cosa. Los navegadores tienen políticas específicas para el caché, y la mayoría de los navegadores son bastante buenos para administrar bien el caché (eliminar solo el contenido anterior, etc.). Al implementar su caché casera, evita que los navegadores la administren correctamente. No solo puede ser criticado por sí solo, sino que también te hará daño tarde o temprano. Ejemplo: cuando los usuarios de una aplicación web informan de errores, a menudo respondes pidiéndoles que borren su caché. No estoy seguro de lo que preguntará en su caso, ya que borrar el caché nunca resolverá problemas con su aplicación web.
En respuesta a su primera edición (su segunda edición está fuera de tema):
Conozco la memoria caché del navegador, todavía habrá alguna comprobación de acceso al encabezado
Parece que le falta algo de comprensión del almacenamiento en caché del navegador. Es por eso que es esencial comprender cómo funciona primero, antes de comenzar a implementar su propio mecanismo de almacenamiento en caché casero . Reinvente su propia rueda solo cuando comprenda lo suficiente las ruedas existentes y tenga una buena razón para no usarlas. Vea el punto 1 de mi respuesta a la pregunta "Reinventar la rueda y NO arrepentirse" .
Al proporcionar algunos datos a través de HTTP, puede especificar algunos encabezados relacionados con el caché:
Last-Modified
especifica cuándo se cambió el contenido,
Expires
especifica cuándo el navegador debe preguntar al servidor si el contenido cambió .
Esos dos encabezados permiten que el navegador:
- Evite descargar el contenido una y otra vez. Si
Last-Modified
está configurado para el último mes, y el contenido ya fue descargado hoy unas horas antes, no hay necesidad de descargarlo nuevamente.
- Evite consultar la fecha en que se modificó el archivo por última vez. Si
Expires
de una entidad caché es de 5 de mayo de XX de 2014, que no tiene que emitir ninguna petición GET ni en 2011, ni en 2012 o 2013, ya que usted sabe que la memoria caché está en marcha hasta la fecha.
El segundo es esencial para las CDN. Cuando Google sirve JQuery a un visitante de Stack Overflow o cdn.sstatic.net
sirve imágenes u hojas de estilo utilizadas por Stack Overflow, no quieren que los navegadores consulten una nueva versión cada vez. En cambio, están sirviendo esos archivos una vez, establecen la fecha de vencimiento en algo lo suficientemente largo, y eso es todo.
Aquí, por ejemplo, una captura de pantalla de lo que sucede cuando llego a la página de inicio de Stack Overflow:
Hay 15 archivos para servir. ¿Pero dónde están todas esas 304 Not Modified
respuestas? Solo tiene tres solicitudes de contenido que cambiaron. Para todo lo demás, el navegador utiliza la versión en caché sin realizar ninguna solicitud a ningún servidor .
Para concluir, realmente necesita pensarlo dos veces antes de implementar su propio mecanismo de caché, y especialmente encontrar un buen escenario en el que esto pueda ser útil . Como dije al principio de mi respuesta, no puedo encontrar una sola: en la que está sirviendo trozos de JavaScript para utilizarlos a través, OMG, eval()
. Pero en este caso, estoy bastante seguro de que hay mejores enfoques que son:
- Más eficaz utilizando las técnicas de caché estándar, o
- Más fácil de mantener.