最近,使用360瀏覽器時,有不少用戶反映無法獲得json數據庫,看著頁面中缺失的圖片、CSS樣式甚至是網頁內容,讓人十分煩惱。那么,這個問題是由什么原因導致的呢?
if (navigator.userAgent.indexOf("360Browser") !== -1) { localStorage.clear(); }
經過排查發現,這個問題與360瀏覽器自帶的“隱私保護模式”有關。在這種模式下,瀏覽器會清除緩存、Cookie等數據,但卻不會清除localStorage中的數據。這就導致了當我們重新登錄或者請求服務器時,瀏覽器去讀取localStorage中無效的緩存數據,出現了無法顯示數據的問題。
解決方法也很簡單,只需在頁面中加入以上的一段代碼,判斷瀏覽器是否為360瀏覽器,并清除localStorage中的緩存即可。另外,如果是在web應用中使用localStorage,也需要注意在每次請求時清空該數據。