[jquery] $ .getJSON retourne les données mises en cache dans IE8


Answers

Voilà comment cela a fonctionné pour moi ...

$.ajaxSetup({ cache: false });
$.getJSON("/MyQueryUrl",function(data,item) {
     // do stuff with callback data
     $.ajaxSetup({ cache: true });
   });
Question

Je joue avec ASP.net MVC et JQuery en ce moment. J'ai rencontré un comportement qui ne semble pas avoir de sens.

$.getJSON fonction $.getJSON pour remplir certains $.getJSON . L'événement est déclenché sur l'événement $(document).ready . Cela fonctionne parfaitement.

Il y a un petit AJAX.BeginForm qui ajoute une autre valeur à utiliser lors du remplissage des divs. Il appelle la fonction à distance correctement et, en cas de succès, appelle la fonction javascript d'origine pour repeupler les divs.

Voici la partie étrange: Dans FireFox et Chrome - Tout fonctionne. MAIS Dans IE8 (Beta), ce deuxième appel au script de remplissage pop (qui appelle la fonction $ .getJSON) obtient des données en cache et ne demande pas au serveur!

Espérons que cette question a du sens: Dans une coquille de noix - Pourquoi $.getJSON obtient des données en cache? Et pourquoi fait-il seulement IE8?




Vous devrez peut-être envoyer un cache-breaker.

Je recommande d'utiliser $ .ajax ({cache: no}) juste au cas où (ajoute un suffixe aléatoire à la demande get)

(J'ai tendance à utiliser $ .ajax partout ces jours-ci, plus ajustable)




J'ai résolu ce même problème en plaçant l'attribut suivant sur l'action dans le contrôleur:

[OutputCache(Duration = 0, VaryByParam = "None")]



Related