我有一個使用Ajax生成結果列表的頁面。然後有一個鏈接點擊另一個詳細信息頁面。當我在詳細信息頁面上,然後單擊後退按鈕。結果頁面列表將重新加載。無論如何,要停止ajax重新加載並緩存結果。無論如何也有緩存位置。如何在單擊後退按鈕時避免重新加載ajax
感謝你的幫助
我有一個使用Ajax生成結果列表的頁面。然後有一個鏈接點擊另一個詳細信息頁面。當我在詳細信息頁面上,然後單擊後退按鈕。結果頁面列表將重新加載。無論如何,要停止ajax重新加載並緩存結果。無論如何也有緩存位置。如何在單擊後退按鈕時避免重新加載ajax
感謝你的幫助
您可以通過改變window.location.hash
財產保存狀態。散列是您可以更改的URL的唯一部分,不會強制重新加載URL。
window.location.hash = 'some-id';
會翻譯成您的網址,如下所示:index.html#some-id
。
然後,您可以得到哈希在頁面加載時和用戶界面設置爲正確的狀態:
if (window.location.hash == 'some-id') {
//setup UI for `some-id` identifier
}
https://developer.mozilla.org/en/DOM/Storage
Store中有某種形式的時間戳數據。檢查是否存儲了數據,並且數據不會比您想要的要舊。如果它較舊,則獲取新數據。如果不使用存儲的數據。
(它不是Mozilla的具體)
您可以使用新的HTML5 localStorage的系統構建高速緩存。這裏有一個鏈接:http://playground.html5rocks.com/#localstorage
關於AJAX /後退按鈕管理
https://github.com/browserstate/history.js
https://github.com/tkyk/jquery-history-plugin
關於你提到的第二個問題,我已經書籤的幾個項目,如果你的瀏覽器支持本地數據庫,你可以緩存那裏的結果。以下項目提供了跨瀏覽器的統一API。
https://github.com/marcuswestin/store.js
https://github.com/alexmng/sticky
位置也被存儲在的LocalDB。
我認爲問題不在於重新加載url,而是當用戶返回該頁面時是否可以緩存並恢復頁面的JavaScript狀態 - 這將需要瀏覽器支持,因此:瀏覽器是否支持它? – Jeff 2012-01-31 23:54:47
是的,對我來說,在我的答案中發佈通知是一個好主意。這不是一個直接的答案,而是一個可能被忽視的選項。我想這樣做可以將信息存儲在cookie(或localStorage/sessionStorage)中,並根據URL檢索信息。 – Jasper 2012-01-31 23:59:02