現(xiàn)在我們討論一個(gè)全新的事物:HTML5本地存儲(chǔ)。至今,對(duì)于本地存儲(chǔ),我們已經(jīng)有了一些選擇。最普遍的莫過于簡陋的基cookies的session,但是cookies的存儲(chǔ)方法被許多問題所困擾,其中最傷腦筋的是這些。
1、會(huì)話中存儲(chǔ)的數(shù)據(jù)在每個(gè)請(qǐng)求的過程中都會(huì)在客戶端和服務(wù)器端之間來回傳輸。
2、存儲(chǔ)數(shù)據(jù)的大小在4KB以內(nèi)。
3、所有的cookies數(shù)據(jù)都會(huì)過期。
盡管這樣,cookies也并非一無是處。cookies可以保存用戶的登錄狀態(tài),以及幫助服務(wù)器識(shí)別用戶的身份。然而,很顯然,我們需要另外一種方式來保存數(shù)據(jù)。幸運(yùn)的是,在本地儲(chǔ)存這個(gè)問題上,我們的確擁有一個(gè)絕妙的解決方案。它是什么?我很高興你問了這個(gè)問題。
因?yàn)橛蠰ocalStorage和sessionStorage,我們具備了兩套在瀏覽器中保存文本字符串的javascript API。SessionStorage保存的數(shù)據(jù)會(huì)在用戶會(huì)話結(jié)束后清除(比如瀏覽器的標(biāo)簽頁或者瀏覽器本身被關(guān)閉)而LocalStorage保存的數(shù)據(jù)則會(huì)—直保留下來,直至開發(fā)者(通過調(diào)用javascript的某些接口 )或用戶(通過瀏覽器的某些設(shè)置)決定清除它們。這兩個(gè)API實(shí)質(zhì)上是相同的,唯一的不同就是它們所保存數(shù)據(jù)的生存期長短。
在一個(gè)現(xiàn)代瀏覽器(比如最近三年內(nèi)發(fā)布的一個(gè)版本 )中打開你的開發(fā)人員工具欄,輸入localStorage.setitem(“name”,“Ben")。如果在Webkit內(nèi)核的瀏覽器中,
你就會(huì)在“Resources"標(biāo)簽欄(還需要展幵“Local Storage”)看到我的名字被保存在里面。就在剛剛,你已經(jīng)保存了你的第一個(gè)item到localStorage里了。
現(xiàn)在,讓我們用localStorage.getitem來取回剛才保存的東西。你應(yīng)該看到“Ben”被整齊地打印在console面板中。最后,需要清理這些數(shù)據(jù),我們可以用localStorage.deleteitem來刪除我的名字或者用LocalStorage.clear()來清除localStorage里面的所有內(nèi)容。當(dāng)用戶調(diào)用LocalStorage.clear()時(shí),其實(shí)刪除的只是當(dāng)前域下的數(shù)據(jù)。因此,如果用戶
wwww.jinanwangluo.com下保存了一些數(shù)據(jù),當(dāng)切換到j(luò)inanwangluogongsi.com的tab頁時(shí),他們會(huì)發(fā)現(xiàn)并不能獲取得到他們?cè)趙ww.jinanwangluo.com的tab頁面下保存的數(shù)據(jù)。