Ajax请求如何实现页面无刷新前进后退,将ajax请求保存至浏览器历史记录
2018-03-07 22:56
926 查看
既然能看到这个帖子说明你碰到这个问题了,使用Ajax异步请求后浏览器不知道用户操作了那些,不可以前进后退,最关键是不是收藏和分享,因为地址栏一直没有修改过。
不闲扯,上干货,代码很简单,就是通过浏览器提供的api将 url put进浏览器历史记录就好啦。
一、将地址put进浏览器历史记录 var stateObject = {"data":window.location.search}; //浏览器的上一次参数信息
var title; //标题(一般就忽略了)
var newUrl = window.location.pathname+"?page="+page+"&thirdGenreId="+thirdGenreId; //最关键部分,新的浏览器地址,执行下面操作这个地址会显示到浏览器地址栏
history.pushState(stateObject,title,newUrl);//共三个参数二、给页面的前进后退绑定事件,这样前进后退页面才会有反应 //前进后退绑定事件
window.addEventListener("popstate", function() {
//下面注释的两句写的是获取当前(后退后的)地址栏的参数和请求路径,进行一次重定向,但是后来发现了一个好方法,用reload方法可以刷新当前页面 2333;
//var currentState = window.location.search;
//window.location.href=window.location.pathname+window.location.search;
location.reload();
});
最后再给大家说一个我使用中的一个小技巧(偷懒)
,后端设计异步请求接口时将页面请求参数和ajax请求参数设置为通用,这样你的参数直接put进浏览器,改改参数就好。
有用就留言,点赞,MM
;
相关文章推荐
- pushState()、popstate事件配合ajax实现浏览器前进后退页面局部刷新
- 基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
- ajax无刷新页面切换,历史记录后退前进解决方案
- javascript history对象(历史记录)使用方法(实现浏览器前进后退)
- javascript history对象(历史记录)使用方法(实现浏览器前进后退)
- 几种方法实现ajax请求内容时使用浏览器后退和前进功能
- Windows Phone 7 浏览器控件(WebBrowser) 支持历史记录,前进,后退,刷新。等功能
- 几种方法实现ajax请求内容时使用浏览器后退和前进功能
- location的hash部分和使用window.onhashchange实现ajax请求内容时使用浏览器后退和前进功能
- pushState、replaceState、onpopstate 实现Ajax页面的前进后退刷新
- 一个简单的例子看明白如何利用window.location.hash实现ajax操作时浏览器的前进/后退功能
- pushState、replaceState、onpopstate 实现Ajax页面的前进后退刷新
- 一个简单的例子看明白如何利用window.location.hash实现ajax操作时浏览器的前进/后退功能
- 如何在点击浏览器前进、后退键时刷新页面而不读取缓存
- JS实现浏览器部分自带的前进后退及刷新等功能
- Ajax程序中,自己实现页面前进、后退、与标签功能(asp.net2.0)
- 计算机学院研发第二轮考核-------浏览器之实现(前进、后退、刷新)
- Ajax程序中,自己实现页面前进、后退、与标签功能(asp.net2.0)
- 如何实现添加多条信息到GridView中,而一次保存到数据库,不被页面刷新而丢失数据呢?