關於sessionStorage的移動端相容問題

2022-08-23 20:45:13 字數 1040 閱讀 9782

最近在開發移動端專案時,需要用到的本地儲存的地方不少。都是一些只要記住當前開啟視窗的使用者資料就行,所以我選擇用的sessionstorage。

使用場景如下:

a.html頁面需要記錄一條資料;

sessionstorage.setitem("data","");

b.html頁面取出使用;

sessionstorage.getitem("data"); //

獲取結果為null

問題:

如果專案不是單頁面復應用,ab是兩個html檔案,需要跳轉href的。我們會發現有些andiron系統的瀏覽器在b頁獲取是到的結果是null (如:vivo手機自帶的世界之窗瀏覽器)。

原因:

經過分析,其實這並不是這個瀏覽器不支援sessionstorage,因為你還是能獲取到sessionstorage這個物件的。

而是因為sessionstorage是乙個當前視窗的資料儲存格式,有些瀏覽器在跳轉新頁面的時候他系統是開啟了乙個新的webview,把原來的關了,也就相當於我們在瀏覽器開啟了乙個新視窗。

這樣他就跟我們的sessionstorage原理衝突了,在新頁面當然就獲取不到咯。

所以建議大家做移動端的時候如果不是單頁面復應用的的專案最好不要使用sessionstorage。慎用!

解決辦法:(2023年了,哈哈!!   來補充下解決辦法,有用的話支援下我哦^_^  ^_^ ^_^,下面的廣告也是今天補的,不關注我的廣告,給我點個贊也非常謝謝的!^_^)

利用localstorage,和window.name來實現:

window.name屬性:頁面重新整理是不會被重置的

a.html頁面

b頁面

vue 全域性監聽sessionStorage變化

一 首先新建乙個global.js 檔案 我的js 檔案為這個名字,名字自己定義 export default vue.prototype.resetsetitem function key,newval return storage.setitem key,newval 第二步 將你的js 檔案匯...

HTML5中的sessionStorage使用示例

sessionstorage作為html5的web storage的兩種儲存方式之一。用於本地儲存乙個會話 session 中的資料,這些資料只有在同乙個 會話中的頁面才能訪問並且當會話結束後資料會被銷毀。不是一種持久化的本地儲存。會話級的儲存。1 介面 sessionstorage.getitem...

關於程式關於世界

首先,在學了1年多的軟體設計的基礎上,問下自己 程式是什麼?業務需求是什麼?程式有什麼用?什麼是演算法?什麼是資料庫?或許每個人的理解不同,會給出不同的答案。那麼自己的理解 程式是乙個讓計算機工作的流程,在程式寫好之後,計算機就會按照,程式設計師定義好流程在執行。其實很多時候,乙個程式的好壞,在於乙...