Je développe une superposition simple pour prévisualiser l'image en taille réelle. J'utilise "cache: false" pour empêcher la mise en cache.jQuery ajax cache: false fonctionne uniquement dans firefox
Le code est simple:
$.ajax({
url: urlFull,
cache: false,
success: function(html){
// display image
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
// display error
}
});
Le problème est - Lorsque le fichier d'image sera remplacé par un autre, le navigateur affichera toujours l'ancien, quel que soit « cache: false » option a été définie.
Ce problème apparaît sous Safari 5.0 (6533.16) et Chrome 5.0.375.99.
Dans Firefox 3.6.3 fonctionne comme prévu (pas de mise en cache)
Je ne peux pas contrôler la logique côté serveur, parce que je précharger un fichier régulier, sans faire appel à des actions de contrôleur dans les rails.
Y at-il une solution de contournement de ce problème? Peut-être, je peux intercepter la réponse avec le serveur Rails et modifier quelques en-têtes? ... Je développe sous localhost.
Merci.
1 - Il Ce n'est pas une solution sale, c'est la seule façon que je connaisse qui fonctionnera sur tous les navigateurs. Maintenant, si vous êtes prêt à utiliser un 'POST' au lieu de' GET', cela empêchera également la mise en cache. –
Je n'ai pas trouvé l'horodatage dans la documentation. Comment puis-je le définir? – AntonAL
Ajoutez simplement un nouveau paramètre GET à votre URL: 'url + =" & avoidCache = "+ (new Date()). GetTime()' – spektom