2010-11-03 9 views

risposta

30

L'opzione cache non è una cache speciale mantenuta da jQuery, quindi forse è un po 'impropria.

  • cache: false aggiunge un timestamp all'URL stato richiesto, in modo che le forze il browser per prendere una copia fresca, è più di una cache-breaker.
  • cache: truenon fa nulla, il caching del browser nativo è lasciato a fare qualsiasi cosa abbia intenzione di fare qui.

Non è una cosa specifica di jQuery, è solo il modo in cui i diversi browser scelgono di mettere in cache una risposta o meno. If your cache headers are set correctly dicendo al browser a nascondilo, quindi dovrebbe. Tuttavia, ad IE piace mettere a tacere le richieste, anche se non ci sono istruzioni per l'intestazione da fare per ... che è il probabilmente il comportamento che stai vedendo. Se è il comportamento che vuoi, aggiungi le intestazioni di controllo della cache (vedi il link sopra) alle pagine che vuoi mettere nella cache anche in altri browser.

+1

Penso che i tuoi booleani siano all'indietro. 'cache: false' aggiunge la stringa di query timestamp, mentre' cache: true' assume il comportamento predefinito del browser. – RANGER

+0

@ cbh - oops sei corretto, aggiornato! –

+0

Perché l'op ha accettato la risposta? Ho lo stesso problema con Chrome. Non importa cosa faccio Non riesco a ottenere un 304 per una richiesta Ajax anche se il server invia correttamente intestazioni Etag e Last-Modified. Ottengo anche un 304 quando richiedo l'URL direttamente dalla barra degli indirizzi ma non da Ajax, quindi chiaramente non è un problema del server. – cap

Problemi correlati