在較高版本的瀏覽器中项郊,js提供了sessionStorage和globalStorage居凶。在HTML5中提供了localStorage來取代globalStorage博投。
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ū)別
Web Storage的概念和cookie相似春霍,區(qū)別是它是為了更大容量存儲設(shè)計的砸西。Cookie的大小是受限的,并且每次你請求一個新的頁面的時候Cookie都會被發(fā)送過去址儒,這樣無形中浪費(fèi)了帶寬芹枷,另外cookie還需要指定作用域,不可以跨域調(diào)用莲趣。
除此之外鸳慈,Web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開發(fā)者自己封裝setCookie喧伞,getCookie走芋。
但是cookie也是不可以或缺的:cookie的作用是與服務(wù)器進(jìn)行交互绩郎,作為HTTP規(guī)范的一部分而存在 ,而Web Storage僅僅是為了在本地“存儲”數(shù)據(jù)而生
瀏覽器的支持除了IE7及以下不支持外翁逞,其他標(biāo)準(zhǔn)瀏覽器都完全支持(ie及FF需在web服務(wù)器里運(yùn)行)嗽上,值得一提的是IE總是辦好事,例如IE7熄攘、IE6中的userData其實就是javascript本地存儲的解決方案兽愤。通過簡單的代碼封裝可以統(tǒng)一到所有的瀏覽器都支持web storage。
localStorage和sessionStorage都具有相同的操作方法挪圾,例如setItem浅萧、getItem和removeItem等
cookie 和session 的區(qū)別:
- cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上哲思。
- cookie不是很安全洼畅,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙考慮到安全應(yīng)當(dāng)使用session。
- session會在一定時間內(nèi)保存在服務(wù)器上棚赔。當(dāng)訪問增多帝簇,會比較占用你服務(wù)器的性能,考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE靠益。
- 單個cookie保存的數(shù)據(jù)不能超過4K丧肴,很多瀏覽器都限制一個站點(diǎn)最多保存20個cookie。
- 所以個人建議:
- 將登陸信息等重要信息存放為SESSION
- 其他信息如果需要保留胧后,可以放在COOKIE中