2010-01-28 6 views
3

Je charge une page de vue via un appel $.ajax() avec jQuery. Je définis explicitement l'option "cache" à true. Nulle part dans l'application nous utilisons $.ajaxSetup() pour spécifier autrement.jQuery (ou peut-être le navigateur) est des scripts chargés par ajax qui brisent le cache

est ici la configuration de la demande ajax:

$(".viewDialogLink").click(function() { 
    $.ajax({ 
     url: $(this).attr("href"), 
     dataType: "html", 
     type: "GET", 
     cache: true, 
     success: function(data) { $("#dlgViews").html(data).dialog("open"); } 
    }); 
    return false; 
}); 

La réponse revient avec succès. La boîte de dialogue s'ouvre et certains contenus s'affichent.

CEPENDANT

Il y a des balises de script dans le code HTML retourné. Par exemple:

<script type="text/javascript" src="http://../jsapi/arcgis/?v=1.4"></script> 

Maintenant, dans le texte de réponse, ils semblent normaux. Mais les demandes de navigateur réelles pour ces scripts, comme vu de FireBug, incluent un paramètre cache-disjoncteur dans la chaîne de requête. Ils ressemblent à:

http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.4&_=1264703589546. Aucune des autres ressources du fichier html-css ou des images chargées n'inclut le disjoncteur de cache dans leur requête.

Que se passe-t-il? Comment puis-je désactiver ce disjoncteur?

+0

En passant, nous utilisons jquery 1.3.2. – womp

+0

Est-ce que cela se produit dans tous les navigateurs ou seulement FF? Vous pouvez utiliser Firebug Lite pour tester dans différents navigateurs. – Fermin

+0

Le chargement est définitivement bloqué au même endroit dans IE, bien que je n'aie pas vérifié la demande spécifiquement. Je vais y jeter un coup d'œil. – womp

Répondre

3

J'ai été en mesure de répliquer votre problème sur mon serveur de test. Je suis ensuite passé de jquery 1.3.2 à 1.4.1. Avec Jquery 1.4.1, il n'ajoute pas la chaîne de rupture de cache.

<script type="text/javascript" src="jquery-1.4.1.min.js"></script> 

Bien sûr, l'utilisation de la version 1.4.1 pourrait ne pas être une option pour vous.

+0

Merde. Nous sommes coincés avec 1.3.2 pour le moment, mais nous sommes au début du cycle de développement - peut-être que jQuery UI sera bientôt compatible avec la version 1.4 et nous pourrons la mettre à niveau. Merci de tester cela, très apprécié! – womp

Questions connexes