zoukankan      html  css  js  c++  java
  • 解决苹果手机返回不刷新问题

    问题描述:

       js返回上一页的实现  :  1)   history.go(-1);

                                           2)   history.back();

                                           3)   history.back(-1);

      第一种方法在苹果手机上返回上一页并不刷新,导致在上一个页面中的状态未更新,第二三中方法没实验,估计也会有这个问题,在安卓手机上功能正常。

    解决办法:

       比如现在有 a.html 和 b.html ,从 a.html 跳到 b.html 进行操作,b.html 中的操作更改状态传到后端保存,返回到a.html时重新请求下数据就可以将对应的状态更新过来。

       1、在 a.html 中的ajax请求url中添加随机数

             这个方法在微信端ios 系统9之前的版本可以,但是在app中无效。

       2、spa(单页路由)

             这个方法可以完美解决该问题。

       3、window.location.href = './a.html'

            该方法能解决这个问题,但是会带来一个新问题:返回进入死循环

       4、监听 pageshowpagehide 方法

             感觉这个是最好的办法了,对页面的改动不太大,只需在js中添加如下代码即可

               $(function () {
                   var isPageHide = false;
                    window.addEventListener('pageshow', function () {
                         if (isPageHide) {
                              window.location.reload();
                          }
                   });
                   window.addEventListener('pagehide', function () {
                         isPageHide = true;
                   });
              });


           

             

       

  • 相关阅读:
    php趣题小记
    git常用语法
    Go 使用小记
    小程序 显示对话框 确定-取消
    小程序 后退一页
    Vue脚手架使用步骤 2.9.6版本
    小程序 后台返回的对象数组(每个数组添加一个新的属性值)
    小程序 添加对象
    小程序图表wx-chart
    微信小程序之自定义select下拉选项框组件
  • 原文地址:https://www.cnblogs.com/angleStudy/p/8797526.html
Copyright © 2011-2022 走看看