jquery - sirve - tipos de memoria cache
jqGrid datos almacenados en el caché del navegador? (1)
¿JqGrid almacena datos de cuadrícula en el sistema de archivos? Si es así, ¿necesita borrar el caché del navegador para eliminarlo?
¿O simplemente está almacenado en la memoria por JavaScript (y el navegador)? ¿Simplemente al cerrar su navegador eliminar los datos?
¿Las respuestas a estas preguntas cambian dependiendo de si está utilizando loadOnce
?
Por defecto, los datos cargados desde el servidor (datos JSON o XML) se guardarán en el caché del navegador, pero no se usarán en la próxima solicitud. El motivo es que, por defecto, jqGrid implementa el mismo comportamiento de solicitudes ajax como cache:false
parámetro cache:false
de jQuery.ajax . Significa que todas las solicitudes tienen un parámetro adicional nd
como nd=1286296925096
que es la marca de tiempo. Hace que la URL de todas las solicitudes GET sea única, por lo que los datos locales guardados no se usarán dos veces. Entonces, si quiere que jqGrid no use los datos del caché local del navegador, no tiene que hacer nada .
Si además desea denegar el almacenamiento local de los datos (por ejemplo, por motivos de seguridad o para reducir el llenado de la memoria caché local con la información que nunca se utilizará), puede incluir directivas no de tienda en el encabezado HTTP de la respuesta del servidor.
Si desea almacenar en caché las solicitudes del servidor y utilizar los datos, debe prmNames: { nd:null}
opción jqGrid . Luego, los datos de las próximas solicitudes podrían obtenerse de la memoria caché del navegador local. Si hace esto, le recomendaré incluir en el encabezado HTTP de la respuesta del servidor las directivas Cache-Control que obligan a usar el comportamiento de caché que necesita. Por ejemplo, yo uso personalmente Cache-Control: max-age=0
y uso ETag
con el hash de los datos enviados. Por lo tanto, todas las solicitudes de Ajax se enviarán al servidor para revalidar el caché local. Todas las solicitudes contendrán automáticamente el encabezado HTTP If-None-Match
con el ETag
de los datos del caché local. Si no se cambian los datos, el servidor puede responder con la respuesta HTTP/1.1 304 Not Modified
sin cuerpo en lugar de HTTP/1.1 200 OK
con el cuerpo que tiene los datos. La respuesta HTTP/1.1 304 Not Modified
permite que el navegador use la memoria caché local.
ACTUALIZADO: Yo uso adicionalmente Cache-Control: private
que apaga el almacenamiento en caché de los datos en el proxy y declara que los datos pueden ser almacenados en caché, pero no compartidos con otros usuarios.
Si desea leer más sobre el control de caché con respecto a los encabezados HTTP, le recomendaré que lea el siguiente tutorial de caché .