ajax 请求到的数据在浏览器返回时仍然显示

博客介绍了不同浏览器对jQuery Ajax请求数据的缓存情况,FF和Chrome不会自动存储,IE则不同。还提到利用history.replaceState事件,在Ajax请求成功后修改当前URL;也可使用history.pushState方法,将当前页面数据写成新URL塞进浏览器history。

FF,Chrome中使用jquery ajax请求得到的数据浏览器不会自动存储,(而IE和别的上述浏览器的缓存机制不一样,它不做添加啥都存,你想不用缓存都不行)。
利用 history.replaceState 事件,在 ajax 请求数据成功后的,修改当前 url,此时,打开新链接再返回时,就是设置成功后的 url ,该链接页面上含有 ajax 请求到的数据。
也可使用 history.pushState 方法,在 ajax 请求数据成功后,把当前页面数据写成一个新的 url ,塞进 浏览器的 history 中,这时,history 的 length 增加了 1 个。

var url;
//页面不刷新,重复提交时,避免使 url 后的参数连续拼接
if (window.location.href.lastIndexOf('ajax=async') == -1){
	url=window.location.href;
}else{
	url=window.location.href.substring(0,window.location.href.lastIndexOf('ajax=async')-1);
}
//判断 url 中有没有参数,有,则使 & 拼接,无,则是 ? 拼接,随机数 Math.random() 是为了与当前 url 区分
if(url.indexOf('?') == -1 ){
	var new_url=url+"?ajax=async"+Math.random();
}else{
	var new_url=url+"&ajax=async"+Math.random();
}
window.history.replaceState(null, null, new_url);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值