Je rencontre un comportement plutôt bizarre dans JQuery.JQuery et la mise en cache des scripts
Je suis charger dynamiquement une série de scripts en utilisant ce code:
for (var i=0; i<requiredScripts.length; i++)
{
$.ajax({
url: baseURL+"js/"+requiredScripts[i],
async: false,
dataType: 'script',
success: checkLoaded
});
}
La fonction checkLoaded
incréments juste un compteur, de sorte que lorsque tous les scripts ont été chargés, il exécute certaines fonctions.
Tout fonctionnait bien jusqu'à ce que j'ai téléchargé une version plus récente de l'un des scripts chargés. JQuery semble continuer à charger l'ancien. J'ai essayé d'actualiser (et forcer l'actualisation) la page en vain ...
J'ai donc désactivé le cache (à partir de la barre d'outils WebDeveloper) et maintenant le script se charge magiquement. Mais quand j'ai réactivé le cache l'ancien script est revenu ...
Je suis allé jusqu'à supprimer le fichier du serveur, et cela n'a rien fait! (sauf si je désactive le cache, c'est-à-dire). Je suis sûr qu'il me manque quelque chose de vraiment simple, mais je ne pouvais pas comprendre.
Merci d'avance à tous ceux qui peuvent vous aider.
EDIT: juste pour clarifier, je veux que le fichier soit mis en cache. Ce que je ne comprends pas, c'est pourquoi un rafraichissement forcé de la page n'aboutit pas à l'obtention du nouveau script.
Notez également que cela se produit uniquement si je charge les fichiers avec JQuery, si je les ajoute manuellement dans le code HTML, une actualisation forcée charge la nouvelle page.
EDIT # 2: résolu en supprimant le cache de FF. Pourtant, ne comprennent pas pourquoi CTRL + MAJ + R n'a pas fait l'affaire ...
ce que le script ne voyez-vous lorsque vous affichez le src à Firebug? – matpol
@matpol: Je vois toujours le vieux chargé. – nico
... sauf si je désactive la mise en cache bien sûr ... mais quand je réactive le cache je vois l'ancien – nico