利用history对象实现地址栏更新,页面局部刷新
来源:互联网 发布:voc0712数据集 编辑:程序博客网 时间:2024/05/29 18:03
如今的HTML页面越来越庞大,有时页面只需加载部分的内容,如果为了加载一小部分内容而重新加载整个页面牺牲是非常大。
现解决这种问题的方式多数是使用ajax异步加载数据然后再渲染数据,这样的方式有个缺点就是地址栏不会变动,如果用户在这个时候刷新了页面那么就得重新点击多次才能加载出之前的数据(常见的场景:数据列表分页展示,tab页面切换)。
那么我们可以使用history对象来弥补这个缺陷。
我们可以使用 history.pushState() 方法来实现浏览器地址栏更新。
history.pushState(state, title, url);state 用于存储一些状态信息,暂时用处不大。
title 可忽略,大多数浏览器并不支持,建议传入null。
url 要添加的url,传入相对路径,url必须和当前url在同一个源下;否则,pushState() 将丢出异常。
使用该方法并不会去加载该url,这样会出现一个问题,当用户在使用浏览器前进后退时候页面也不会重新加载。
解决该问题的方式与代码已上传至GitHub,请自行查阅。
https://github.com/joel-ou/js/blob/master/loader.js
注:浏览器在前进后退页面的时候会恢复到该页面跳转前的位置,如无需该特性可以使用以下方式禁止
history.scrollRestoration = "manual";
浏览器兼容情况请查阅以下资料
https://developer.mozilla.org/zh-CN/docs/Web/API/History/pushState
阅读全文
0 0
- 利用history对象实现地址栏更新,页面局部刷新
- HTML5 History对象,Javascript修改地址栏而不刷新页面
- 利用 History API 无刷新更改地址栏
- 利用ajax实现页面的局部刷新
- 利用Ajax实现页面局部刷新
- 利用Ajax实现页面局部刷新
- 使用Ajax和history.pushState()实现无刷新改变页面内容和地址栏Url
- Ajax局部页面刷新和history
- HTML5 利用 History API 无刷新更改地址栏
- 在JSF页面利用Ajax实现局部刷新
- 利用Ajax实现在页面显示局部刷新
- HTML—js:利用History对象实现页面跳转
- 利用iframe实现局部刷新
- Ajax局部页面刷新和history的坑
- Ajax 实现页面局部刷新
- jquery实现页面局部刷新
- jquery实现页面局部刷新
- js实现页面局部刷新
- oracle delete、truncate、drop语句区别
- makefile编写
- No active profile set, falling back to default profiles: default
- PCF8575扩展SOC端口很方便
- Faster-RCNN Tensorflow版本源码解析(一):网络训练部分train_net.py
- 利用history对象实现地址栏更新,页面局部刷新
- java 读取 txt文件 特定行
- 关于linux删除文件夹命令方法
- maven私服的搭建
- INFO [Timer-282] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading.....
- 中间件的实现原理
- Java面向对象-String类作业一字符串转数组
- Nginx为什么比Apache Httpd高效:原理篇
- Python3 (入门3) 函数