views:

23

answers:

1

I'm troublehooting an instance where IE8 is rendering cached data. FF & Chrome don't having problems keeping up.

The page flow goes like this...a dropdown list box selection is submitted and server side writes back a few fields based on the selection. Then other stuff happens. This is a multi-step checkout process - first step establishes the base...2nd step establishes optional features, 3rd steps submits the final.

All these steps happen within the a single .aspx page - jQuery is 'showing/hiding' different containers depending on the current step. It would be tempting to look for faults in server-side and/or ajax bits except for the fact that FF & Chrome work perfectly.

When IE users step thru that checkout flow a 2nd time the data is retained from the original checkout. (again...fine for FF and Chrome).

The data that's not getting updated is generated server-side:

<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>

It's not form data...it's really, really strange how IE can be caching this so vigorously. I've tried adding a getDate() hidden field and the and have seen _some effect but not consistently, bullet-proof results.

I've seen a number of discussions around referencing IE and AJAX data but that shouldn't be coming into play here. Is there any other meta code to use?

A: 

I would set the appropriate HTTP headers to prevent caching in both the main page and the AJAX responses. Try:

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

Also, if these are form fields that are stale, it could be IE's auto-complete causing the issue. Try adding autocomplete="off" to form fields.

Matt S
No AJAX involved in the step in question. It's a conventional round-trip submission where the response is returned to the same page - jquery decides what container to show. - autocomplete held no joy.
justSteve
Since this only happens in IE (meaning we know for sure it's a client problem), I would try everything to prevent IE from caching the page. Have you tried setting all kinds of HTTP headers?
Matt S