-
html5中的Web Storage包括了兩種存儲方式:sessionStorage和localStorage。
sessionStorage用于本地存儲一個會話(session)中的數(shù)據(jù),這些數(shù)據(jù)只有在同一個會話中的頁面才能訪問并且當(dāng)會話結(jié)束后數(shù)據(jù)也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。
localStorage用于持久化的本地存儲,除非主動刪除數(shù)據(jù),否則數(shù)據(jù)是永遠(yuǎn)不會過期的。
Web Storage的概念和cookie相似,區(qū)別是它是為了更大容量存儲設(shè)計的。Cookie的大小是受限的,并且每次你請求一個新的頁面的時候Cookie都會被發(fā)送過去,這樣無形中浪費了帶寬,另外cookie還需要指定作用域,不可以跨域調(diào)用。
Web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開發(fā)者自己封裝setCookie,getCookie。
Web Storage僅僅是為了在本地“存儲”數(shù)據(jù)而生
localStorage與SessionStorge有相同時方法,區(qū)別在于localStorge屬于永久性存儲,SessionStorge屬于會話存儲。
常用操作:
sessionStorage.getItem(key):獲取指定key本地存儲的值
sessionStorage.setItem(key,value):將value存儲到key字段
sessionStorage.removeItem(key):刪除指定key本地存儲的值
sessionStorage.length是sessionStorage的項目數(shù)
參考文獻:HTMl5的sessionStorage和localStorage
用例1:
1.在進入對應(yīng)功能頁時發(fā)起ajax請求獲取json數(shù)據(jù);
2.在該功能頁或其子頁面使用Sessionstorge中數(shù)據(jù)。
用例2:
查看本地SessionStorage中是否有所需字段,沒有則ajax請求獲取,有就從SessionStorage中取。

注意:該種方式下,注意其他頁面更改緩存后要清除緩存,從而到服務(wù)器獲取新的數(shù)據(jù)

對比與總結(jié):
SessionStorge便于在客戶端存儲常用的數(shù)據(jù),避免反復(fù)向服務(wù)器請求數(shù)據(jù)。用例1只在每次進入功能頁時請求一次,然后就可以使用SessionStorge中的數(shù)據(jù),簡便、易實現(xiàn)。用例2只有首次進入功能頁以及涉及的SessionStorge字段被更改時請求,請求數(shù)量少、訪問速度快、用戶體驗佳。