概述: 一個系統登入後,存在一個頁面配置一些信息,然後配置完信息可以繼續操作其他頁面,但是我一般的操作習慣是打開兩個標籤頁,一個標籤頁就是設定頁面一直打開著,另一個標籤頁就是操作頁面;
需求1: 目前我是將部分設定資訊放入sessionStorage
中,但是兩個標籤頁的sessionstorage
是不共享的,只有當前頁面設定目前頁面操作其他頁面才有效,至於不用localStorage
的原因是設定資訊會一直存著,下次登入後不會更新設定資訊。
需求2: 目前前台取得sessionStorage
中的資訊的邏輯是這樣的,如果存在該item
且不為空,便直接用了,不會去後台取,這樣的問題是多用戶端場景時,其他用戶更改了配置,當前客戶端不能及時獲取最新配置信息,我有一個思路是參照http 3xx
的做法,每次前台get配置信息時,都往後台放鬆一個請求,如果lastmodifiedtime
不變的話,繼續用本地的數據,一旦變了便返回最新的配置信息,各位有什麼好的建議一起分享出來吧!
不知有沒有大俠有比較好的想法和建議
如果我面對這樣的需求,我的做法:
需求1: 採用LocalStorage, 但是Key名會攜帶過期時間,例如item&1494485763;
需求2: 每次請求配置項,request 請求攜帶最後一次修改時間的cookie值;如果最後修改時間相同,則空返回,使用本地資料;否則返回最新的設定項;
localStorage,然後你在登入頁welcome那個頁面重置一下,不就可以了嗎?
然後需求2就是設定一下過期時間唄。如果上次一個的localstorage過了十分鐘了。重新拉取一次資料。
localStorage 或 indexedDB 皆可;
對於快取的資料的處理,可以設計過期機制,也可以對每次的事務產生 UUID,事務全部完成以後清理掉快取。
localStorage完全可以解決,在你儲存的資訊有變化的情況下,更新下localStorage中對應的儲存資訊就可以了。當然如果有敏感資訊是不能儲存在瀏覽器的。