摘要:基本方法添加鍵值對(duì),如果存在時(shí),更新。清除所有鍵值對(duì)。也就是說,只要用戶不主動(dòng)刪除,存儲(chǔ)的數(shù)據(jù)將會(huì)永久存在。在使用進(jìn)行存取操作的同時(shí),如果需要對(duì)存取操作進(jìn)行監(jiān)聽,可以使用內(nèi)置的事件監(jiān)聽器對(duì)數(shù)據(jù)進(jìn)行監(jiān)控。
1.localStorage 基本方法
添加鍵值對(duì):localStorage.setItem(key,value),如果key存在時(shí),更新value。
獲取鍵值:localStorage.getItem(key),如果key不存在返回null。
刪除鍵值對(duì):localStorage.removeItem(key)。key對(duì)應(yīng)的數(shù)據(jù)將會(huì)全部刪除。
清除所有鍵值對(duì):localStorage.clear()。如果調(diào)用clear()方法,清空localStorage中所有信息,那么key、oldValue和newValue都會(huì)被設(shè)置為null。
獲取localStorage的屬性名稱(鍵名稱):localStorage.key(index)。
還有一個(gè)和普通對(duì)象不一樣的屬性length:
獲取localStorage中保存的鍵值對(duì)的數(shù)量:localStorage.length。
2.存儲(chǔ)格式localStorage對(duì)象的鍵和值只能是字符串,假設(shè)我們要保存一個(gè)對(duì)象到localStorage中,可以使用拼接的方式。當(dāng)然也可以借助JSON類,將對(duì)象轉(zhuǎn)換成字符串保存,然后在取出來的時(shí)候?qū)son字符串轉(zhuǎn)換成真正可用的json對(duì)象格式
3.生命周期在數(shù)據(jù)存儲(chǔ)的時(shí)效性上,localStorage并不會(huì)像cookie那樣可以設(shè)置數(shù)據(jù)存活的時(shí)限。也就是說,只要用戶不主動(dòng)刪除,localStorage存儲(chǔ)的數(shù)據(jù)將會(huì)永久存在。
sessionStorage生命周期為當(dāng)前窗口或標(biāo)簽頁,一旦窗口或標(biāo)簽頁被永久關(guān)閉了,那么所有通過sessionStorage存儲(chǔ)的數(shù)據(jù)也就被清空了。
4.存儲(chǔ)位置不同瀏覽器無法共享localStorage或sessionStorage中的信息。相同瀏覽器的不同頁面間可以共享相同的localStorage(頁面屬于相同域名和端口),但是不同頁面或標(biāo)簽頁間無法共享sessionStorage的信息。這里需要注意的是,頁面及標(biāo)簽頁僅指頂級(jí)窗口,如果一個(gè)標(biāo)簽頁包含多個(gè)iframe標(biāo)簽且他們屬于同源頁面,那么他們之間是可以共享sessionStorage的。
5.存儲(chǔ)大小對(duì)于HTML5的localStorage而言,其大小支持為5M(當(dāng)然,各瀏覽器的大小差異還是有的)。對(duì)于IE的userData,用戶數(shù)據(jù)的每個(gè)域最大為64KB。
6.應(yīng)用場(chǎng)景建議不要使用localStorage方式存儲(chǔ)敏感信息,哪怕這些信息進(jìn)行過加密。另外,對(duì)身份驗(yàn)證數(shù)據(jù)使用localStorage進(jìn)行存儲(chǔ)還不太成熟。我們知道,通常可以通過xss漏洞來獲取到Cookie,然后用這個(gè)Cookie進(jìn)行身份驗(yàn)證登錄,但是瀏覽器可以通過HttpOnly來保護(hù)Cookie不被XSS攻擊獲取到。而localStorage存儲(chǔ)沒有對(duì)XSS攻擊有任何防御機(jī)制,一旦出現(xiàn)XSS漏洞,那么存儲(chǔ)在localStorage里的數(shù)據(jù)就極易被獲取到。
7.storage事件當(dāng)存儲(chǔ)的storage數(shù)據(jù)發(fā)生變化時(shí)都會(huì)觸發(fā)它,但是它不同于click類的事件會(huì)冒泡和能取消,storage改變的時(shí)候,觸發(fā)這個(gè)事件會(huì)調(diào)用所有同域下其他窗口的storage事件,不過它本身觸發(fā)storage即當(dāng)前窗口是不會(huì)觸發(fā)這個(gè)事件的(當(dāng)然ie這個(gè)特例除外,它包含自己本事也會(huì)觸發(fā)storage事件)。
在使用 Storage 進(jìn)行存取操作的同時(shí),如果需要對(duì)存取操作進(jìn)行監(jiān)聽,可以使用 HTML5 Web Storage api 內(nèi)置的事件監(jiān)聽器對(duì)數(shù)據(jù)進(jìn)行監(jiān)控。只要 Storage 存儲(chǔ)的數(shù)據(jù)有任何變動(dòng),Storage 監(jiān)聽器都能捕獲。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107647.html
摘要:本地存儲(chǔ)的方案?jìng)鹘y(tǒng)把信息存儲(chǔ)到客戶端的瀏覽器中但是項(xiàng)目服務(wù)器端也是可以獲取的把信息存儲(chǔ)到服務(wù)器上的服務(wù)器存儲(chǔ)永久存儲(chǔ)在客服端的本地。 在客戶端運(yùn)行的js是不能操作用戶電腦磁盤中的文件的(這是為了保護(hù)客戶端運(yùn)行的安全)。 1、js中的本地存儲(chǔ): 使用js向?yàn)g覽器的某一個(gè)位置中存儲(chǔ)一些內(nèi)容,瀏覽器即使關(guān)閉了,存儲(chǔ)的信息也不會(huì)銷毀,當(dāng)在重新打開瀏覽器的時(shí)候我們依然可以獲取到上一次存儲(chǔ)的信息。...
摘要:通常,它用于告知服務(wù)端兩個(gè)請(qǐng)求是否來自同一瀏覽器,如保持用戶的登錄狀態(tài)。使基于無狀態(tài)的協(xié)議記錄穩(wěn)定的狀態(tài)信息成為了可能。標(biāo)記為的只應(yīng)通過被協(xié)議加密過的請(qǐng)求發(fā)送給服務(wù)端。 前記 前面我已經(jīng)寫了一篇關(guān)于Cookie的文章,但是那時(shí)候我其實(shí)理解的并不是很深刻,會(huì)有些搞不懂的地方,今天我就再寫一次,博客也是我的學(xué)習(xí)筆記 Cookie Cookie是服務(wù)器發(fā)送到用戶瀏覽器并保存在本地的一小塊數(shù)據(jù)...
摘要:移動(dòng)端緩存失效是我印象最深的一個(gè)之一,為啥呢,因?yàn)檫@個(gè)問題導(dǎo)致我加班到很晚。的生命周期是僅在當(dāng)前會(huì)話下有效。引入了一個(gè)瀏覽器窗口的概念,是在同源的窗口中始終存在的數(shù)據(jù)。無bug,不程序:作為程序員的我,不是修bug就是在寫bug的路上?! ∫苿?dòng)端sessionStorage緩存失效是我印象最深的一個(gè)bug之一,為啥呢,因?yàn)檫@個(gè)問題導(dǎo)致我加班到很晚。在現(xiàn)在看來就是一個(gè)簡(jiǎn)單的概念問題。在我剛工作...
摘要:定時(shí)器時(shí)間到了就將中存的信息以及存的時(shí)間信息就是那個(gè)對(duì)象中的刪掉就行了。難道存了三條我就做三個(gè)定時(shí)器存的條我就做個(gè)定時(shí)器這也太了而且也并不符合實(shí)際。 一、酷酷的開頭 在潛水的時(shí)間長達(dá)一年之后,我終于鼓起勇氣開始寫我的第一篇文章了。前端小菜,只是想記錄一下自己的想法,望各位看到這文的大佬輕噴。 在現(xiàn)在前后端分離的開發(fā)模式下,存儲(chǔ)信息一般都不在使用以往使用的cookie了,就拿筆主我之前做...
摘要:已經(jīng)超出本地存儲(chǔ)限定大小可進(jìn)行超出限定大小之后的操作,如下面可以先清除記錄,再次保存面試官一波素質(zhì)三連對(duì)于只是會(huì)使用的同學(xué)來說,肯定是不得其解的。 最近面試的時(shí)候關(guān)于html5API總會(huì)被問到localStorage的問題, 對(duì)于一般的問題很簡(jiǎn)單,無非就是 localStorage、sessionStorage和cookie這三個(gè)客戶端緩存的區(qū)別 localStorage的API,g...
閱讀 2994·2021-11-25 09:43
閱讀 3639·2021-08-31 09:41
閱讀 1255·2019-08-30 15:56
閱讀 2145·2019-08-30 15:55
閱讀 3006·2019-08-30 13:48
閱讀 2823·2019-08-29 15:15
閱讀 994·2019-08-29 15:14
閱讀 2664·2019-08-28 18:26