往返缓存 bfcache

        很多业务中,我们从 a 页面进行操作,进入 b 页面后显示操作结果,当我们直接返回退到 a 页面时,我们需要的是 a 页面能自动刷新数据,但是,a 页面并未发生改变。也就是说,返回后页面为刷新,这就是 往返缓存  Back-Forward Cache(简称bfcache)。

        bfcache,即back-forward cache,可称为“往返缓存”,可以在用户使用浏览器的“后退”和“前进”按钮时加快页面的转换速度。这个缓存不仅保存页面数据,还保存了DOM和JS的状态,实际上是将整个页面都保存在内存里。如果页面位于bfcache中,那么再次打开该页面就不会触发onload事件。

  pageshow事件

  这个事件在页面显示时触发,无论页面是否来自bfcache。在重新加载的页面中,pageshow会在load事件触发后触发;而对于bfcache中的页面,pageshow会在页面状态完全恢复的那一刻触发。

  

window.addEventListener('pageshow', function( e ){
  appendFunc("Pageshow Event");
  appendFunc("pageshow persisted is :"  + e.persisted);
})

  以上方法不管用时,也可以暴力一点:

if(window.name != "fresh"){
   location.reload();
   window.name = "fresh";
}else{
   window.name = "";
}

  

转载于:https://www.cnblogs.com/_error/p/9062273.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值