解决苹果手机返回不刷新问题

问题描述:html

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

                                       2)   history.back();ajax

                                       3)   history.back(-1);后端

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

解决办法:app

   好比如今有 a.html 和 b.html ,从 a.html 跳到 b.html 进行操做,b.html 中的操做更改状态传到后端保存,返回到a.html时从新请求下数据就能够将对应的状态更新过来。ide

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

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

   二、spa(单页路由)htm

         这个方法能够完美解决该问题。

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

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

   四、监听 pageshowpagehide 方法

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

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

相关文章
相关标签/搜索