7
我在Chrome 19中遇到了一個奇怪的錯誤。我通過pushState支持實現了一個完整的AJAX網站(通過AJAX請求打開每個非外部鏈接)。我通過JSON格式在AJAX中傳輸HTML片段。Chrome中的Ajax + pushState錯誤
當我通過外部鏈接離開我的網站,然後返回時,Chrome爲該網址呈現緩存的數據 - 問題在於,他緩存了JSON內容並顯示出來,而不是完整的網頁。
這是這些步驟可重複(更新:我在我的網站上移除AJAX功能從那時起,所以這個bug並不再出現):
- 打開http://beta.mirtes.cz/
- 單擊第二個日期鏈接(16. 6. 2012旁邊的「這一切始於一個奇怪的電子郵件」)。此頁面(您現在位於http://beta.mirtes.cz/it-all-began-with-a-strange-e-mail)通過AJAX加載。
- 點擊「這一切都開始於一個奇怪的電子郵件」。你被重定向到一個外部網站。
- 頁面完全加載後,在Chrome中點擊「返回」。
我嘗試使用Cache-Control發送所有AJAX響應:no-cache,但沒有任何效果。
Firefox 12正常工作。
你能解釋一下你做了什麼以及它是如何解決問題的? – Ryan
我使用額外的GET參數進行所有AJAX請求 - 在這種情況下,ajax = 1。該參數對用戶是不可見的,因爲它只在後臺執行。 –
這樣,瀏覽器就可以知道完整的HTML內容和JSON AJAX內容之間的區別,因爲這些URL是不同的。因此它不會顯示緩存的JSON內容。你可以在我的主頁上查看功能http://ondrej.mirtes.cz/。 –