2012-02-01 15 views
7

En relación con mi early question de cómo agregar memoria caché de manifiesto en node.js, mi pregunta ahora está relacionada con cómo almacenar en caché el HTML generado por node.js. Como no teníamos un archivo físico como en php (index.php) no podemos almacenar en caché ese tipo de archivos.Cómo almacenar en caché con el sitio Node.js de manifiesto

¿Cómo podemos almacenar en caché una página "no existente"? Solo agregando caché:

CACHE MANIFEST 

    CACHE: 
    # plain files to cache 
    /javascripts/client.js 
    /stylesheets/style.css 
    /stylesheets/style.styl 
    # generated files like/
    /
    /content 

¿Alguna idea de cómo solucionar este problema?

Gracias!

Solución:

Agregar enrutador para regresar el archivo cache.manifest con el tipo MIME correcto:

app.get("/offline.manifest", function(req, res){ 
    res.header("Content-Type", "text/cache-manifest"); 
    res.end("CACHE MANIFEST"); 
}); 

Found at stackoverflow

Respuesta

3

El manifiesto de caché URL de la lista que deben ser almacenados en caché. El cliente que accede a esas URL no tiene conocimiento si estos son archivos html estáticos sobre Apache o contenido dinámico generado por node.js o cualquier otra cosa.

Básicamente estás dando instrucciones al cliente:

  1. leer mi lista de URL
  2. pasar por cada URL
  3. Descarga la respuesta y guardarlo en un lugar seguro
  4. comprobar de nuevo en mi cache.manifest si ha cambiado y luego continúe con el paso 1

Siempre y cuando los datos generados por node.js sean reachables A través de una URL no hay ningún problema para definirla como una línea en el manifiesto de caché.

Y si está preocupado "¿cómo voy a saber qué URLs no son" siempre se puede generar el archivo de cache.manifest programación desde Node.js en sí - pero recuerde que debe servir a la correcta tipo de contenido text/cache-manifest

Cuestiones relacionadas