最近在開發移動端項目時,需要用到的本地存儲的地方不少。都是一些只要記住當前打開窗口的用戶數據就行,所以我選擇用的sessionStorage。使用場景如下:
A.html頁面需要記錄一條數據{a:1,b:2};
sessionStorage.setItem("data","{a:1,b:2}");
B.html頁面取出使用;
sessionStorage.getItem("data"); // 獲取結果為null
問題:如果項目不是單頁面復應用,AB是兩個html文件,需要跳轉href的。我們會發現有些Andiron系統的瀏覽器在B頁獲取是到的結果是null (如:vivo手機自帶的世界之窗瀏覽器)。
經過分析,其實這並不是這個瀏覽器不支持sessionStorage,因為你還是能獲取到sessionStorage這個對象的。而是因為sessionStorage是一個當前窗口的數據存儲格式,有些瀏覽器在跳轉新頁面的時候他系統是打開了一個新的webView,把原來的關了,也就相當於我們在瀏覽器打開了一個新窗口。這樣他就跟我們的sessionStorage原理沖突了,在新頁面當然就獲取不到咯。 所以建議大家做移動端的時候如果不是單頁面復應用的的項目最好不要使用sessionStorage。慎用!
