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


           

             

       

  • 相关阅读:
    C语言和指针-回顾02-const
    Linux内核学习-使用exec创建socket
    Archlinux安装和配置
    apt-get install failed
    Insmod module : operation not permitted
    5.2.5.用开发板来调试模块
    5.2.4.最简单的模块源码分析3
    5.2.3.最简单的模块源码分析2
    5.2.1.开启驱动开发之路
    总线,设备,驱动的关系
  • 原文地址:https://www.cnblogs.com/angleStudy/p/8797526.html
Copyright © 2011-2022 走看看