2010-11-03 18 views

Respuesta

30

La opción cache no es un caché especial que jQuery mantiene, por lo que quizás sea un poco inapropiado.

  • cache: false anexa que se solicita una marca de tiempo a la URL, por lo que fuerzas el navegador para agarrar una copia nueva, que es más de un caché automático.
  • cache: trueno hace nada, el almacenamiento en caché del navegador nativo se deja hacer lo que sea que vaya a hacer aquí.

No es algo específico de jQuery, sino cómo los diferentes navegadores eligen cachear una respuesta o no. If your cache headers are set correctly diciendo al navegador a almacenarlo en caché, entonces debería. Sin embargo, a IE le gusta almacenar en caché las solicitudes incluso cuando no hay instrucciones de encabezado para ... que es probablemente el comportamiento que estás viendo. Sin embargo, si es el comportamiento que desea, agregue los encabezados de control de caché (consulte el enlace anterior) a las páginas que desea almacenar en la caché también en otros navegadores.

+1

Creo que tus booleanos están al revés. 'cache: false' agrega la cadena de consulta de marca de tiempo, mientras que' cache: true' se predetermina al comportamiento del navegador. – RANGER

+0

@cbh - ¡Uy, estás en lo correcto, actualizado! –

+0

¿Por qué el operador aceptó la respuesta? Tengo el mismo problema con Chrome. No importa lo que haga, no puedo obtener un 304 para una solicitud de ajax aunque el servidor envíe los encabezados Etag y Last-Modified correctamente. También recibo un 304 cuando solicito la URL directamente desde la barra de direcciones, pero no desde ajax, por lo que claramente no es un problema para el servidor. – cap

Cuestiones relacionadas