【发布时间】:2012-01-31 23:47:03
【问题描述】:
我有一个使用 Ajax 生成结果列表的页面。然后有一个链接可以单击到另一个详细信息页面。当我在详细信息页面时,单击后退按钮。结果页面列表将再次重新加载。无论如何要停止ajax重新加载并缓存结果。无论如何也可以缓存位置。
感谢您的帮助
【问题讨论】:
标签: javascript html ajax
我有一个使用 Ajax 生成结果列表的页面。然后有一个链接可以单击到另一个详细信息页面。当我在详细信息页面时,单击后退按钮。结果页面列表将再次重新加载。无论如何要停止ajax重新加载并缓存结果。无论如何也可以缓存位置。
感谢您的帮助
【问题讨论】:
标签: javascript html ajax
我收藏的一些关于 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中。
【讨论】:
您可以通过更改window.location.hash 属性来保存状态。哈希是 URL 中唯一可以更改且不会强制重新加载 URL 的部分。
window.location.hash = 'some-id'; 将转换为您的 URL,如下所示:index.html#some-id。
然后,您可以在页面加载时获取哈希并将 UI 设置为正确的状态:
if (window.location.hash == 'some-id') {
//setup UI for `some-id` identifier
}
【讨论】:
https://developer.mozilla.org/en/DOM/Storage
使用某种时间戳存储您的数据。检查您是否存储了数据,并且它没有比您希望的旧。如果它较旧,请获取新数据。如果不使用存储的数据。
(不是 Mozilla 特有的)
【讨论】:
您可以使用新的 HTML5 LocalStorage 系统来构建缓存。这是一个链接:http://playground.html5rocks.com/#localstorage
【讨论】: