我想在一个AJAX应用程序中实现一个体面的导航。我现在正在做的是:聪明的方式来管理浏览器历史
- 每当用户点击一个AJAX链接,相应的调用被执行并且哈希被改变。
- 无论何时加载新页面,我都会检查哈希是否存在,并进行相应的AJAX调用来更新页面。这可确保书签按预期工作。
- 每500ms我会检查哈希值是否发生变化并执行相应的AJAX调用。这会照顾用户按下后退/前进按钮,尽管延迟很小。
第三点有点烦人:我宁愿没有每500ms只有一次超时检查哈希,因为大部分时间都会保持不变。
有没有更好的方法来管理呢?我想不出任何替代品,但也许我错过了一些东西。
请不要将我指向现成的解决方案,除非您知道它们基于不同的机制。
IE8,Firefox 3.6,Chrome 4和更新的浏览器支持hashchange事件。 Google's Closure Library(http://closure-library.googlecode.com/svn-history/r8/trunk/closure/goog/docs/class_goog_History.html)和YUI 3(http://developer.yahoo.com/yui/ 3/history /)将尽可能使用此事件,否则将退回到投票计划。 – ide 2010-11-17 11:57:05