由於最近Safari 5發佈了,它導致我的網站出現一些問題。我有一個運行傳統ASP的動態網站(儘管這應該不重要),並且該網站有一些創造性的歷史堆棧使用。例如,您可以在列出產品的頁面上,然後查看有關產品的詳細信息並更改產品(admin-view)。當您點擊產品上的保存時,信息將通過AJAX發送到服務器,併發出history.back()
。這在所有瀏覽器(包括safari < = 4)都很好,但是,在新發布的safari 5中,它停止工作。看起來,當您在Safari 5中單擊時,它實際上並未刷新頁面,它只會從緩存中加載它,這意味着不會顯示在詳細信息視圖中所做的更改。我如何才能在safari 5中完成這項工作?這是當前的代碼,我不得不關閉緩存(包括在每一個頁面的頂部):防止Safari 5中的後退按鈕上的緩存
Dim pStr
pStr = "private, no-cache, no-store, must-revalidate"
Response.AddHeader "pragma","no-cache" '?
Response.AddHeader "cache-control", pStr '? Er ikke sikker på om disse 3 siste er nødvendige.
Response.AddHeader "cache-control", "post-check=0, pre-check=0" '? Er ikke sikker på om disse 3 siste er nødvendige.
Response.AddHeader "Expires", "Mon, 26 Jul 1997 05:00:00 GMT" '?
Response.AddHeader "Last-Modified", Now()
偉大的修復 - 確認從iOS 6(iPhone和iPad)開始工作!謝謝Mika! – Jesse 2013-04-07 12:15:36
這也適用於Safari 6,桌面。 window.onunload的舊黑客不再一貫地工作 - 現在應該被認爲是「正確的」答案。 – 2013-06-06 20:34:06
這適用於iPad。不幸的是(至少對我而言),當它從睡眠模式喚醒時,它有重新加載頁面的副作用。如果用戶做了一堆表單元素的更改導致各種顯示更改,用戶必須重新開始。有沒有辦法重新加載頁面只有從後退按鈕,但不是如果醒來? – 2013-10-16 20:37:14