瀏覽器端常用的存儲(chǔ)技術(shù)是 cookie 、localStorage 和 sessionStorage。cookie: 其實(shí)最開(kāi)始是服務(wù)器端用于記錄用戶狀態(tài)的一種方式,由服務(wù)器設(shè)置,在客戶端存儲(chǔ),然后每次發(fā)起同源請(qǐng)求時(shí),發(fā)送給服務(wù)器端。cookie 最多能存儲(chǔ) 4 k 數(shù)據(jù),它的生存時(shí)間由 expires 屬性指定,并且 cookie 只能被同源的頁(yè)面訪問(wèn)共享。
sessionStorage: html5 提供的一種瀏覽器本地存儲(chǔ)的方法,它借鑒了服務(wù)器端 session 的概念,代表的是一次會(huì)話中所保存的數(shù)據(jù)。它一般能夠存儲(chǔ) 5M 或者更大的數(shù)據(jù),它在當(dāng)前窗口關(guān)閉后就失效了,并且 sessionStorage 只能被同一個(gè)窗口的同源頁(yè)面所訪問(wèn)共享。
localStorage: html5 提供的一種瀏覽器本地存儲(chǔ)的方法,它一般也能夠存儲(chǔ) 5M 或者更大的數(shù)據(jù)。它和 sessionStorage 不同的是,除非手動(dòng)刪除它,否則它不會(huì)失效,并且 localStorage 也只能被同源頁(yè)面所訪問(wèn)共享。上面幾種方式都是存儲(chǔ)少量數(shù)據(jù)的時(shí)候的存儲(chǔ)方式,當(dāng)需要在本地存儲(chǔ)大量數(shù)據(jù)的時(shí)候,我們可以使用瀏覽器的 indexDB 這是瀏覽器提供的一種本地的數(shù)據(jù)庫(kù)存儲(chǔ)機(jī)制。它不是關(guān)系型數(shù)據(jù)庫(kù),它內(nèi)部采用對(duì)象倉(cāng)庫(kù)的形式存儲(chǔ)數(shù)據(jù),它更接近 NoSQL 數(shù)據(jù)庫(kù)。