解決蘋果手機返回不刷新問題

問題描述: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;
               });
          });

相關文章
相關標籤/搜索