针对Ajax历史记录的轮询与隐藏的iFrame

时间:2010-11-24 00:19:11

标签: javascript ajax url browser browser-history

背景

检测URL中的哈希更改并修复前进/后退按钮是处理Ajax历史记录的库的两个要求。实现这些库有两种思路。您可以让轮询器不断检查URL(错误的浏览器没有onHashChange事件)。或者,您可以使用隐藏的iFrame在浏览器历史记录中添加点。有人可能认为隐藏的iFrame比轮询更好,但隐藏的iFrame不会更新外部浏览器的URL。因此,如果用户想要在Web应用程序中共享她当前的状态,她将始终分享她的初始状态。

问题

是否有任何Ajax历史记录技术都不需要轮询并更新主浏览器的URL?

2 个答案:

答案 0 :(得分:0)

这两种技术相结合怎么样?更改网址,以及使用iframe。忽略hashChanged(在好的浏览器上),只需在dom:ready

上解析哈希码

答案 1 :(得分:-1)

从原始问题看你的评论,我建议使用iframes方法进行IE浏览,并为其他浏览器进行轮询。

如果您正在寻找一个专门处理此问题的图书馆,并且您需要一个基础来帮助推广自己的图书馆,请查看Real Simple History

如果您只是在寻找在Ajax UI中保持页面状态的功能,那么dojo会使用dojo.hash()填充程序支持此功能。此方法为不支持它的浏览器创建onhashchange事件,并管理后退按钮的状态。它根据浏览器使用混合的轮询和iframe(iFrame专门用于IE版本< 8)。