zoukankan      html  css  js  c++  java
  • iOS设备 微信h5页面回退 内容不刷新的问题

    原因分析:
    一.android 浏览器 包括微信的开发者工具 都是ok的返回可以刷新页面但是唯有iOS不行.
    二.iOS 浏览器原因:history.go(-1)返回上一页后,页面内容并不会刷新。在B页面修改的内容,返回到A时并没有更新新的内容,必须手动刷新。
    在Debug模式下,发现在iOS浏览器中,返回上一页后,页面的 JS 代码并未执行。我们猜测可能是缓存引起的,于是使用 meta 禁止了缓存,但仍然没有效果。于是进一步猜测可能是浏览器内部机制导致——iOS为了提升浏览网页的效率,可能给已浏览过的网页添加一个类似快照的东西,当点击返回按钮后,直接调用快照展示给用户,省去了执行JS这一步骤(纯静态文件依然被缓存)。这本来是iOS的优势,在这却变成了bug存在的风险.
    三.页面数据是通过 ajax 请求后台数据,通过链接跳到下一页,然后返回,
    最常用的返回上一页的方法:history.go(-1)和 history.back(),
    在 android 中正常显示上一页,但是在 iOS 中不能正常显示,通过打印

    返回的数据,发现数据是上一个页面最后请求的数据。
    解决方法:
    在回退后需要刷新的页面加以下js:
    $(function () {
    var isPageHide = false;
    window.addEventListener('pageshow', function () {
    if (isPageHide) {
    window.location.reload();  //刷新页面

    //刷新 方法
    }
    });
    window.addEventListener('pagehide', function () {
    isPageHide = true;
    });
    })



    作者:上善_若水
    链接:https://www.jianshu.com/p/b5c2d8b09682
  • 相关阅读:
    Python+Selenium+PhantomJS下载JavaScript异步加载网页
    Java模拟post提交表单数据
    在nltk中调用stanfordparser处理中文
    Clustering text documents using k-means
    Classification of text documents: using a MLComp dataset
    Analyzing the Meaning of Sentences
    Identifying Dialogue Act Type
    jquery $.ajax()获取服务器上的json数据
    关于ie6中存在的最小的高度
    让两个元素水平对齐
  • 原文地址:https://www.cnblogs.com/FACESCORE/p/11833351.html
Copyright © 2011-2022 走看看