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;
                   });
              });


           

             

       

  • 相关阅读:
    宏 定 义 编 译 出 错
    SSWR 跟 进一法除法
    显示文件后缀扩展名
    基于MPLAB X IDE配置位设置讲解
    mplab xIde 编译成功,但不能生成Hex文件
    InputStream 、 InputStreamReader 、 BufferedReader
    MPLAB® XC C编译器的Workstation License的获取及安装方法
    MPLAB设置路径
    js中的cookie及封装
    nodejs中使用node-sass
  • 原文地址:https://www.cnblogs.com/angleStudy/p/8797526.html
Copyright © 2011-2022 走看看