安卓和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); } });