Nous utilisons la balise de script dynamique avec le mécanisme JsonP pour réaliser des appels Ajax interdomaines. Le widget frontal est très simple. Il appelle simplement un service Web de recherche, en passant les critères de recherche fournis par l'utilisateur et en recevant et en affichant les résultats de façon dynamique.Comment puis-je empêcher IE Caching de provoquer des demandes Ajax en double?
Remarque - Pour ceux qui ne sont pas familiers avec le script dynamique Tag avec la méthode jsonp d'exécuter les requêtes Ajax-comme à un service qui renvoient des données au format JSON, je peux expliquer comment l'utiliser si vous pensez qu'il pourrait être pertinent au problème.
Le service est hébergé par WCF sur IIS. Il est reposant donc la première chose que nous faisons lorsque l'utilisateur clique sur la recherche est de générer une URL contenant les critères. Il ressemble à ceci ...
Nous utilisons ensuite une marque Html Script dynamique créée avec l'attribut source défini sur l'URL ci-dessus pour en faire la demande à notre service. Le résultat est renvoyé et nous le traitons pour afficher les résultats.
Tout cela fonctionne très bien, mais nous avons remarqué que lors de l'utilisation de IE, le service reçoit la demande du client Deux fois. Je Fiddler pour surveiller le trafic de quitter le navigateur et bien sûr, je vois deux demandes avec les urls suivantes ...
- Demande 1: https://.../service.svc?criteria=john+smith
- Demande 2: https://.../service.svc?criteria=john+smith&_=123456789
La deuxième demande a été ajouté avec une sorte d'Id. Cet identifiant est différent pour chaque demande.
Ma pensée immédiate est que c'était quelque chose à voir avec la mise en cache. L'ajout d'un nombre aléatoire à la fin de l'URL est l'une des méthodes classiques de désactivation de la mise en cache du navigateur. Pour le prouver j'ai ajusté les paramètres de cache dans IE.
J'ai défini "Rechercher les versions les plus récentes des pages stockées" sur "Jamais" - Cela a entraîné une seule requête à chaque fois. Celui avec le nombre aléatoire à la fin.
J'ai redéfini cette valeur par défaut sur "Automatique" et les demandes ont immédiatement recommencé à être envoyées deux fois.
Fait intéressant, je ne reçois pas les deux demandes sur le client. J'ai trouvé ce reference où quelqu'un suggère que cela pourrait être un bug avec IE. Le fait que cela n'arrive pas pour moi sur Firefox supporte cette théorie. Quelqu'un peut-il confirmer s'il s'agit d'un bug avec IE? Cela pourrait être par conception.
Cela me semble être un très bon début dans la bonne direction. Je vais accepter bientôt si cela s'avère utile. Merci pour la réponse rapide! –