Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 管理浏览器历史记录的聪明方法_Javascript_Ajax_Browser History - Fatal编程技术网

Javascript 管理浏览器历史记录的聪明方法

Javascript 管理浏览器历史记录的聪明方法,javascript,ajax,browser-history,Javascript,Ajax,Browser History,我正在尝试在AJAX应用程序中实现一个像样的导航。我现在正在做的是: 每次用户单击AJAX链接时,都会执行相应的调用并更改哈希 每当加载新页面时,我都会检查哈希是否存在,并进行相应的AJAX调用以更新页面。这样可以确保书签按预期工作 每隔500毫秒,我检查哈希是否更改,并执行相应的AJAX调用。这将照顾用户按下后退/前进按钮,尽管有一个小的延迟 第三点有点烦人:我不希望每500毫秒就有一次超时来检查散列,因为大部分时间它都会保持不变 有没有更好的管理方法?我想不出别的办法,但也许我错过了什么

我正在尝试在AJAX应用程序中实现一个像样的导航。我现在正在做的是:

  • 每次用户单击AJAX链接时,都会执行相应的调用并更改哈希
  • 每当加载新页面时,我都会检查哈希是否存在,并进行相应的AJAX调用以更新页面。这样可以确保书签按预期工作
  • 每隔500毫秒,我检查哈希是否更改,并执行相应的AJAX调用。这将照顾用户按下后退/前进按钮,尽管有一个小的延迟
第三点有点烦人:我不希望每500毫秒就有一次超时来检查散列,因为大部分时间它都会保持不变

有没有更好的管理方法?我想不出别的办法,但也许我错过了什么

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

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

也许是一本有趣的读物,它是针对你正在做的事情的现成解决方案。 不,除非每个浏览器都正确支持hashchange(阅读:ie),否则您必须手动检查此插件:

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

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

IE8、Firefox 3.6、Chrome 4和更新的浏览器支持hashchange事件。如果可能的话,谷歌的闭包库()和YUI 3()将使用此事件,否则将退回到投票方案。我已经明确表示“请不要让我看到现成的解决方案,除非你知道它们基于不同的机制。”对不起,意大利语是我的第一语言。据我所知,看起来你在寻找不同的机制。我认为应该是“请不要告诉我现成的解决方案,除非你知道它们不是基于不同的机制”。实际上我想我忽略了这句话。