安卓和ios移動端實現H5頁面進行強制刷新

安卓和ios移動端實現H5頁面進行強制刷新

定義和用法
onpageshow 事件在用戶瀏覽網頁時觸發。

onpageshow 事件相似於 onload 事件,onload 事件在頁面第一次加載時觸發, onpageshow 事件在每次加載頁面時觸發,即 onload 事件在頁面從瀏覽器緩存中讀取時不觸發。

爲了查看頁面是直接從服務器上載入仍是從緩存中讀取,你能夠使用 PageTransitionEvent 對象的 persisted 屬性來判斷。 若是頁面從瀏覽器的緩存中讀取該屬性返回 ture,不然返回 false (查看如下 "更多實例" )。

在實際開發中發現安裝手機對於pageshow的方法沒有問題ios對pageShow的兼容新不兼容,簡單粗暴解決ios不刷新的問題,能夠使用window.reload(),可是這種狀況會從新刷新會出現閃屏的狀況。能夠用下面方法進行解決:android

this.pageLoad();
   }
   const _this = this;
   window.addEventListener("pageshow", function(event) {
     if (_this.os === "android") {
       setTimeout(() => {
         _this.pageLoad();
       }, 10);
     } else {
       if (event.persisted) {
         _this.pageLoad();
       }
     }
     try {
       const bfWorker = new Worker(
         window.URL.createObjectURL(new Blob(["1"]))
       );
       window.addEventListener("unload", function() {
         // 這裏綁個事件,構造一個閉包,以避免 worker 被垃圾回收致使邏輯失效
         bfWorker.terminate();
       });
     } catch (e) {
       console.log(e);
     }
   });
相關文章
相關標籤/搜索