页面返回不刷新问题

原因:

返回不刷新是因为,移动端浏览器为了节省流量一般返回都会去缓存,可以通过pageshow事件监听页面返回,通过event.persisted字段来判断当前页面是否是从缓存中获取的。

window.addEventListener('pageshow', function(event) {
//event.persisted属性为true时,表示当前文档是从往返缓存中获取`
   if(event.persisted){
    location.reload();
  }
});

实际测试发现,返回时pageshow事件虽然执行,但是location.reload()并没有效果,页面仍然没有刷新,尝试通过meta控制当前页面不缓存,仍然失败。
发现通过定时器刷新浏览器并没有取缓存数据,问题解决了。

最终代码:
 window.addEventListener('pageshow', function (event) {
    //event.persisted属性为true时,表示当前文档是从往返缓存中获取
      if (event.persisted) {
        setTimeout(function() {
          location.reload()
        }, 500);
      }
    });

测试结果:除华为Nova4e默认浏览器外,其他ok

你可能感兴趣的:(页面返回不刷新问题)