2013-01-08 71 views
0

我使用history.back(-1),並嘗試history.go(-1)轉到上一個URL,它將我導航到先前的URL,但在Chrome中它需要來自Cache的內容,所以如果我通過ajax進行了任何更改並導航到其他頁面並且想要回到之前的URL,它應該刷新頁面並從DB而不是緩存中獲取新的更新內容。此問題僅適用於Chrome,也可能在Safari 5中。history.back()顯示Chrome的問題

或者除了使用歷史記錄對象之外,還有什麼方法可以轉到上一個URL嗎?好了,我們可以通過使用document.referrer做的,但它不給我哈希(#)值,假設我有一個URL http://www.example.com/home.html#navigate,如果我用document.referrer只會給我http://www.example.com/home.html

請幫助

+1

檢查「位置」的對象,你會發現如何訪問URL字符串的不同部分。 還有「location.assign(字符串url)」,你可以使用它強制刷新。 – zvona

+0

你可以在javascript中使用location.hash來獲得#navigate。 –

回答

1

您可以:

  1. 禁用文件高速緩存,setting no-cache。 (也可以在後端更改文件頭,但我不知道你使用的是什麼後端。)
  2. 您可以使用setInterval來驗證window.location.hash併發出回調。
    • Backbone.js在路由器可能會幫助你。
    • Sammy.js也是一個很好的選擇!
    • 您可以谷歌其他pushState庫。
  3. 可以保存在一個變量的頁面內容時,一些內容被xhr需要申請安全性的變化,你改變它的內容,因此,如果用戶使用歷史回來,DOM將在構建的DOM參考內存元素樹和頁面已在此處更改。 (我沒有測試過這個,但理論上它可以工作,因爲你只是引用你瀏覽器用來填充DOM的實例)。

希望這有助於你,但你給的信息,我不能走的更遠......在Chrome控制檯