Ajax History 实现分析

最近研究了一下Ajax History的实现,目前多数的实现是用一个Timer去定时check浏览器的hash是否改变,还有一些兼容性不强的unInterval的实现。

IE:

  • 链接到一个锚点,如果该锚点在当前页未被定义,则不能产生history
  • 页面中的iframe,如果改变其hash,href,或重新写入新的HTML内容,都会产生history
  • 对iframe产生的history进行“向前”,“向后”操作时,页面地址栏的值不会改变
  • iframe中使用hash change的方式,在操作历史记录时会相应回滚,可以以此作为历史记录改变的触发事件
  • 页面hash的改变,无法通过location.hash获取

其他浏览器:

  • 链接到一个锚点,如果该锚点在当前页未被定义,也能产生history
  • 页面hash的改变,可以通过location.hash获取
  • iframe中使用hash change的方式,在操作历史记录时不会相应回滚,没办法以此作为历史记录改变的触发事件

实现方案:

  • 定时检测hash的变化

ajax history demo: http://www.easyui.org.cn/ajaxHistory.html



[本日志由 dh20156 于 2010-08-29 10:54 PM 编辑]
文章来自: DHTML精英,WEB前端专家!
引用通告: 查看所有引用 | 我要引用此文章
Tags: AJAX history
评论: 1 | 引用: 0 | 查看次数: 923
回复回复Lane[2010-08-28 07:59 PM | del]
查理,标题是不是少了个字母啊?
进来才知道是Ajax
:)
引用来自 dh20156 dh20156 于 2010-08-29 10:54 PM 回复
果然,太粗心鸟  ^_^
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭