2010-05-18 3 views
2

Je suis à l'affût d'une instance où IE8 restitue des données mises en cache. FF & Chrome n'a pas de problèmes pour suivre. Le flux de page va comme ceci ... une sélection de zone de liste déroulante est soumise et le côté serveur réécrit quelques champs en fonction de la sélection. Ensuite, d'autres choses arrivent. Il s'agit d'un processus de paiement en plusieurs étapes - la première étape établit la base ... la deuxième étape établit les fonctionnalités optionnelles, la troisième étape soumet la finale. Toutes ces étapes se déroulent dans une seule page .aspx - jQuery affiche/cache différents conteneurs en fonction de l'étape en cours. Il serait tentant de chercher des fautes dans les bits côté serveur et/ou ajax sauf pour le fait que FF & Chrome fonctionne parfaitement.Prise en main d'IE sur le contenu mis en cache

Lorsque les utilisateurs d'IE passent par ce flux de validation une deuxième fois les données sont conservées à partir de la vérification d'origine. (encore ... bien pour FF et Chrome).

Les données qui n'est pas mis à jour s'est généré côté serveur:

<div> 
    Registering users for: <b> 
     <%=Model.Webinar.Title %></b><br /> 
    <%=Model.Webinar.Presenter.FullName %><br /> 
    <b> 
     <%=Html.DisplayDate(Model.Webinar.Date)%></b> - <i> 
      <%=Html.DisplayTime(Model.Webinar.Date, timeZ, false)%> 
      - 
      <%=Html.DisplayTime(Model.Webinar.Date, Model.Webinar.Duration, timeZ)%><br /> 
     </i> 
</div> 

sa forme pas de données ... c'est vraiment, vraiment étrange comment IE peut être mise en cache de cette manière avec vigueur. J'ai essayé d'ajouter un champ caché de getDate() et le et j'ai vu un certain effet mais pas systématiquement, des résultats pare-balles.

J'ai vu un certain nombre de discussions autour du référencement des données IE et AJAX, mais cela ne devrait pas entrer en ligne de compte ici. Y a-t-il un autre code méta à utiliser?

Répondre

2

Je définirais les en-têtes HTTP appropriés pour empêcher la mise en cache à la fois dans la page principale et dans les réponses AJAX. Essayez:

Cache-Control: no-cache 
Pragma: no-cache 

De plus, si ceux-ci sont des champs de formulaire qui sont obsolètes, il pourrait être de IE de saisie semi-automatique l'origine du problème. Essayez d'ajouter autocomplete = "off" pour former des champs.

+0

Aucun AJAX impliqué dans l'étape en question. C'est une soumission conventionnelle aller-retour où la réponse est retournée à la même page - jquery décide quel conteneur afficher. - autocomplete tenu pas de joie. – justSteve

+0

Puisque cela se produit uniquement dans IE (ce qui signifie que nous savons avec certitude qu'il s'agit d'un problème client), j'essayerais tout pour empêcher IE de mettre en cache la page. Avez-vous essayé de configurer toutes sortes d'en-têtes HTTP? –

Questions connexes