javascript - 如何在瀏覽器不同標籤頁中共享資料? localStorage和sessionStorage是否可行?
ringa_lee
ringa_lee 2017-05-19 10:11:00
0
4
1158

概述: 一個系統登入後,存在一個頁面配置一些信息,然後配置完信息可以繼續操作其他頁面,但是我一般的操作習慣是打開兩個標籤頁,一個標籤頁就是設定頁面一直打開著,另一個標籤頁就是操作頁面;

需求1: 目前我是將部分設定資訊放入sessionStorage中,但是兩個標籤頁的sessionstorage是不共享的,只有當前頁面設定目前頁面操作其他頁面才有效,至於不用localStorage的原因是設定資訊會一直存著,下次登入後不會更新設定資訊。

需求2: 目前前台取得sessionStorage中的資訊的邏輯是這樣的,如果存在該item且不為空,便直接用了,不會去後台取,這樣的問題是多用戶端場景時,其他用戶更改了配置,當前客戶端不能及時獲取最新配置信息,我有一個思路是參照http 3xx的做法,每次前台get配置信息時,都往後台放鬆一個請求,如果lastmodifiedtime不變的話,繼續用本地的數據,一旦變了便返回最新的配置信息,各位有什麼好的建議一起分享出來吧!

不知有沒有大俠有比較好的想法和建議

ringa_lee
ringa_lee

ringa_lee

全部回覆(4)
仅有的幸福

如果我面對這樣的需求,我的做法:

需求1: 採用LocalStorage, 但是Key名會攜帶過期時間,例如item&1494485763;

需求2: 每次請求配置項,request 請求攜帶最後一次修改時間的cookie值;如果最後修改時間相同,則空返回,使用本地資料;否則返回最新的設定項;

phpcn_u1582

localStorage,然後你在登入頁welcome那個頁面重置一下,不就可以了嗎?

然後需求2就是設定一下過期時間唄。如果上次一個的localstorage過了十分鐘了。重新拉取一次資料。

大家讲道理

localStorage 或 indexedDB 皆可;
對於快取的資料的處理,可以設計過期機制,也可以對每次的事務產生 UUID,事務全部完成以後清理掉快取。

世界只因有你

localStorage完全可以解決,在你儲存的資訊有變化的情況下,更新下localStorage中對應的儲存資訊就可以了。當然如果有敏感資訊是不能儲存在瀏覽器的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板