2010-05-18 43 views
2

我正在查找IE8呈現緩存數據的實例。 Chrome不會遇到問題。IE對緩存內容的掌握

頁面流程如下...提交下拉列表框選擇,服務器端根據選擇回寫幾個字段。然後發生其他事情。這是一個多步驟結賬流程 - 第一步建立基礎...第二步建立可選功能,第三步提交最終結果。

所有這些步驟都發生在一個.aspx頁面 - jQuery根據當前步驟顯示/隱藏不同的容器。除了Chrome瀏覽器能夠完美工作這一事實之外,在服務器端和/或ajax位中尋找故障是很誘人的。

當IE用戶第二次通過結賬流程步驟時,數據從原始結賬中保留。 (再次罰款FF和Chrome)。

產生,這不是得到更新的數據服務器端:

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

它不形成數據......這是真的,真的很奇怪IE如何被緩存這個那麼起勁。我試着添加一個getDate()隱藏字段,並且看到了_some效果,但並不一致,防彈結果。

我已經看到了圍繞引用IE和AJAX數據的大量討論,但這不應該在這裏發揮作用。有沒有其他元代碼可以使用?

回答

2

我會設置適當的HTTP標頭,以防止在主頁面和AJAX響應中進行緩存。嘗試:

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

另外,如果這些表單字段是陳舊的,它可能是IE的自動完成引起的問題。嘗試添加autocomplete =「off」以形成字段。

+0

沒有涉及該步驟的AJAX。這是一個傳統的往返提交,其中響應返回到同一頁面--jquery決定顯示哪個容器。 - 自動完成沒有喜悅。 – justSteve 2010-05-20 09:10:18

+0

由於這隻發生在IE瀏覽器(意思我們知道肯定這是一個客戶端問題),我會盡量阻止IE緩存頁面。您是否嘗試過設置各種HTTP標頭? – 2010-05-20 14:48:29