pushState()、popstate事件配合ajax实现浏览器前进后退页面局部刷新

本文介绍了如何利用HTML5的pushState()方法和popstate事件,结合ajax技术,实现在浏览器前进后退时页面的局部刷新。作者作为前端小白,通过自我探索,成功实现了这一功能,并在代码中注意了事件绑定的问题,欢迎交流讨论。
摘要由CSDN通过智能技术生成

最近研究pushState,看了网上的文章还是不怎么会用,于是自己摸索着理解使用,终于实现局部刷新同时前进后退。


首先说说pushState(),这个函数将当前的url等信息加入history堆栈中;

当点击浏览器的前进后退按钮时,会触发popstate事件,所以可以在onpopstate的时候使用ajax实现局部刷新前进后退。


我的方法(用jQuery):

1、定义两个函数

function ajaxLoad(){
//里面加载ajax
};
function setState(){
var stateobj = ({//里面存放url等信息,stateobj将作为pushState()的第一个参数
url:url,
title:title
});
window.history.pushState(stateobj,null,url);//将当前url加入堆栈中
};


2、正常浏览使用ajax时

$('a').on('click',function(event){//假设点击a标签加载ajax
event.preventDefault();//防止跳转
ajaxLoad();
setState();
});


3、onpopstate

window.addEventListener('popstate', function(event) {
var state = event.state;//取得目标u
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值