5

我正在尝试在 AJAX 应用程序中实现体面的导航。我现在正在做的事情如下:

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

第三点有点烦人:我不希望每 500 毫秒超时一次只是为了检查哈希,因为大多数时候它会保持不变。

有没有更好的方法来管理这个?我想不出任何替代方案,但也许我错过了一些东西。

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

4

3 回答 3

5

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

于 2010-11-17T11:54:43.147 回答
0

也许是一个有趣的读物,它是您正在做的确切事情的现成解决方案。不,在每个浏览器都正确支持 hashchange 之前(阅读:ie),您必须手动检查

于 2010-11-17T11:55:58.477 回答
0

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

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

  • 在浏览器或社交网站中添加书签
  • 通过电子邮件或即时通讯工具发送链接
  • 使用主要搜索引擎查找特定内容
  • 利用浏览器历史记录和重新加载按钮
于 2010-11-17T19:04:16.903 回答