html5 修改url,HTML5无刷新修改URL

HTML5新添加了两个api分别是pushState和replaceState,DOM中的window对象通过window.history方法提供了对浏览器历史记录的读取,可以在用户的访问记录中前进和后退,我们可以开始操作这个历史记录堆栈。

实例一、通过pushState修改URL

通过这句代码可以无刷新改变URL

window.history.pushState({},0,url);

DEMO代码:

截图:

7741ba9b94fb9df9129c88b49d726e51.png

在input输入框内输入haha.html点击“点击无刷新改变url”按钮即可实现

05fd7ffaeed2222141ae857332ffa175.png

实例二、利用ajax配合pushState翻页无刷新的动作

主要在ajax发起数据请求,在数据页面响应后利用pushState修改分页参数,达到模拟真实翻页效果,并且写入历史表达到后退时能恢复上一页的数据

demo-page.html代码:

shuju.php代码:

DEMO贴图:

284692ad7258c8eb055c3cdf6868e39c.png

没有点击之前

4af91c63006ce5d6c84ea83f8ab98836.png

点击后,发起ajax请求page=2数据

6fb7a8f0491e2ce5e21553f7deac98bc.png

ajax返回后通过pushState修改URL,请看截图地址栏已经是page=2,页面没有刷新,因为firebug控制台中的ajax请求记录还在

3b698773abf9f0f2956e4ad2c10a88c7.png

点击后退箭头,恢复上一页的数据

最后

虽说这两个html5新加api能实现无刷新修改URL,但js毕竟是前端,为了安全是不能跨域的。比如本例中的demo域是在www.qttc.net下,不能修改到www.xxx.com域下。有不少人说这个特性解决了ajax局部刷新区域不容易被蜘蛛人抓取的问题,本人没有亲自验证,但却有可行之势,感兴趣的童鞋可以尝试下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值