巧妙管理浏览器历史记录的方法

时间:2010-11-17 11:43:15

标签: javascript ajax browser-history

我正在尝试在AJAX应用程序中实现一个不错的导航。我现在正在做的是以下内容:

  • 每次用户点击AJAX链接时,都会执行相应的调用并更改哈希值。
  • 每当加载新页面时,我都会检查是否存在哈希并进行相应的AJAX调用以更新页面。这可确保书签按预期工作。
  • 每隔500毫秒,我检查哈希值是否已更改并执行相应的AJAX调用。这会照顾用户按下后退/前进按钮,尽管有一个延迟。

第三点有点烦人:我宁愿每隔500毫秒没有超时检查哈希值,因为大部分时间它都会保持不变。

  

有没有更好的方法来管理它?我想不出任何其他选择,但也许我错过了一些东西。

请不要指出我现成的解决方案,除非你知道它们是基于不同的机制。

3 个答案:

答案 0 :(得分:5)

有一个“hashchange”事件,它将在HTML5中实现。我不确定现在有多好的支持...... IE8支持它,我认为Mozilla在最近的版本中有自己的实现。除此之外,没有什么我害怕的。检查exery x ms是每个人都这样做的方式。

答案 1 :(得分:0)

也许this是一个有趣的读物,它是一个现成的解决方案,用于您正在做的事情。 并且,在每个浏览器中都正确支持散列更改之前(读取:ie),您必须手动检查

答案 2 :(得分:0)

使用此插件:http://www.asual.com/jquery/address/

jQuery Address插件提供强大的深层链接功能,允许创建可指向网站部分或应用程序状态的唯一虚拟地址。它支持许多重要功能,包括:

  • 在浏览器或社交网站中添加书签
  • 通过电子邮件或即时消息发送链接
  • 使用主要搜索引擎查找特定内容
  • 利用浏览器历史记录和重新加载按钮