美文网首页
ios 页面后退不重新加载问题

ios 页面后退不重新加载问题

作者: 前端程序员小白 | 来源:发表于2019-03-18 14:49 被阅读0次

    使用history.go(-1)回退页面,结果数据不重新加载,处理过的数据还留在页面上,容易出现二次处理报错的问题。

    安卓是没有问题的。

    使用此方法可以解决加载问题。不限于ios或者android.只要页面显示就可以使用此方法。

    ```

    window

    .addEventListener('pageshow',function(e){

    // 通过persisted属性判断是否存在 BF Cache

    if(e.persisted) {

            location.reload();

        }

    ````

    原理:pageShow事件在页面显示即会触发,无论页面是否来自BF Cache。通过检测persisted属性即可判断是否存在 BF Cache 行为。

    优点:大部分浏览器都支持pageShow方法与persisted属性,并且需要的代码量只需要短短4行即可。

    缺点:每种浏览器中BF Cache的机制是不同的,部分浏览器中的Bf Cache还是会重新执行js代码,会造成重复渲染效果。当然现在我们只考虑Ios中的微信页面, 所以是不存在问题。

    相关文章

      网友评论

          本文标题:ios 页面后退不重新加载问题

          本文链接:https://www.haomeiwen.com/subject/bcgvmqtx.html