2010-09-12 3 views
0

Est-il possible de déterminer si une réponse retournée par $ .ajax a été affichée à partir du cache du navigateur ou était récente?jQuery réponse html

Merci.

+0

changer votre titre pour refléter ce que vous demandez plus clairement, par exemple « Déterminer si la réponse jQuery html a été mis en cache ou frais » – jlarson

Répondre

4

Non, ce n'est pas possible. Ce que vous pouvez faire est de créer une nouvelle URL à chaque fois (par exemple en ajoutant une chaîne aléatoire à l'URL, qui est ignorée par le script sur le serveur), ou en définissant les en-têtes de cache de la réponse de manière appropriée.

Voir: http://www.mnot.net/cache_docs/#CACHE-CONTROL

Vous pouvez définir max-age, no-store, no-cache, must-revalidate ou une combinaison des précédents.

+0

En outre, la balise img a une propriété 'complete' pour indiquer si oui ou non le navigateur a chargé une image particulière. http://www.devguru.com/technologies/ecmascript/quickref/image.html – karim79

+0

Merci. Je vois maintenant. –

0

Vous pouvez utiliser les éléments suivants dans jQuery pour vous assurer qu'il ne cache:

$.ajaxSetup({cache: false}}); 

Je ne suis pas sûr de ce que vous cherchez à atteindre.

Si vous voulez vraiment savoir si les données sont obsolètes, vous pouvez faire quelque chose comme:

  1. Faites votre déclaration écrite du serveur une chaîne unique chaque fois qu'il est appelé
  2. Vérifiez si cette chaîne existe dans vos variables temp javascript
  3. si oui, son rassis, sinon, son nouveau.
+0

Je ne souhaite pas modifier la requête. Je veux juste savoir après avoir reçu une réponse du serveur (pas nécessairement le mien) en utilisant AJAX si la réponse était en cache ou fraîche. –

+0

En tout cas, merci! –