摘要:HTML5 在 history 对象上添加几个新的方法、事件、属性,用以增强开发者对于浏览器历史记录的控制。大体上说,新的API可以帮助我们在无刷新的情况下改变浏览器的url,新增或者替换之前的历史记录。希望阅读本篇文章以后大家有所收获,帮助大家对HTML5的理解更加深入。
html5 在 history 对象上添加几个新的方法、事件、属性,用以增强开发者对于浏览器历史记录的控制。大体上说,新的API可以帮助我们在无刷新的情况下改变浏览器的url,新增或者替换之前的历史记录。
这里谈谈使用新的 History API时,需要特别注意的地方。
·
state 保存不了完整对象,只能保存一般对象(plain object),因为可能浏览器使用了JSON方法,方法都被移除掉了。这个我是被坑过的,明明保存了对象,并且在state上面找到了,结果调用方法就报错。
·
popstate 事件在firefox下,页面直接载入时是不触发的,而 Chrome 和 Safari 下是触发的。这个问题很容易解决,因为我们总是可以通过 history.state 对象获得当前路径的 state 对象,只是在绑定事件的时候需要额外考虑一下第一次的情况(有些库会帮你考虑的)。
·
每次浏览器历史记录发生变化都会触发popstate事件,包括用户使用前进或者后退按钮,以及调用history接口。如果历史记录是由调用pushState或者replaceState改变的,state对象可通过event对象的state属性获得。
·
最后,推荐一下TJ写的page.js,一个不仅使用简单,而且对于异步操作非常友好的客户端路由库。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标WEB前端HTML5/CSS3频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号