返回页面刷新

376 阅读1分钟

有些页面没有效果

window.location.go(-1) 

部分安卓微信环境

场景如下:

A页面到B页面 然后用户点击返回或者屏幕左滑动返回时, 页面没有刷新

ios和安卓处理方式不行

ios参考

需要做的事: 1.添加头部信息:设置不缓存

<meta HTTP-EQUIV="pragma" CONTENT="no-cache">    
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">    
<meta HTTP-EQUIV="expires" CONTENT="0">

2.ios需要设置

window.onpageshow = function (e) {
    if (e.persisted) {
        window.location.reload(true)
    } 
}

然后这样在安卓也是有问题的

我这样处理了。没有封装方法 , 你们需要可以封装一个

总结

A页面

<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
    <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
    <meta HTTP-EQUIV="expires" CONTENT="0">
<script>
        var ua = navigator.userAgent;
        var isIOS = function () {
            return /(iPhone|iPad|iPod)/i.test(ua);
        }
        if (isIOS()) {
            window.onpageshow = function (e) {
                if (e.persisted) {
                    window.location.reload(true)
                }
            }
        } else {
            var pageRefreshName = sessionStorage.getItem('REFRESH_PAGE');
            if (pageRefreshName == 'a.html') {
                sessionStorage.removeItem('REFRESH_PAGE');
                window.location.reload();
            }
        }

    </script>

这个代码最好在页面head标签内加入

B页面

需要在标志A页面要刷新的地方执行

sessionStorage.setItem('REFRESH_PAGE', 'a.html')

实践有效