?sessionStorage和localStorage都是html5 新增的Web Storage客戶端本地保存數(shù)據(jù)的功能翅帜,我們主要從以下幾點進行區(qū)別:
作用域
- localStorage在相同的協(xié)議两曼、相同的主機名、相同的端口下彼宠,就能讀取/修改到同一份localStorage數(shù)據(jù)频丘。
- sessionStorage 除了協(xié)議郁稍、主機名辜梳、端口外粱甫,還要求在同一窗口(也就是瀏覽器的標簽頁)下,如果打開一個同源的頁面作瞄,會把sessionStorage里面的數(shù)據(jù)復制過去茶宵,但是兩個sessionStorage分屬不同作用域,即修改讀取的不是同一份sessionStorage數(shù)據(jù)粉洼。如果是在當前頁面如刷新當前頁面节预,數(shù)據(jù)還在叶摄。
window.open("./index.html", "_blank"); // 復制sessionStorage的數(shù)據(jù)属韧,但是修改讀取的不是同一份sessionStorage數(shù)據(jù)。
生命周期
- localStorage的儲存是永久的蛤吓,除非手動清除宵喂,不然會一直保存著
- sessionStorage屬于會話級存儲,在同源的瀏覽器窗口始終存在会傲,只要這個瀏覽器窗口沒有關閉锅棕,即使刷新頁面或者進入同源另一個頁面,數(shù)據(jù)依然存在淌山,關閉窗口則銷毀裸燎。
存儲大小
- localStorage和sessionStorage的存儲數(shù)據(jù)大小一般都是:5MB(Chrome),不同的瀏覽器有所差異泼疑。
儲存類型
- localStorage和sessionStorage都是按照鍵值對來存儲的德绿,但是它的值只能存儲字符串類型,我們通常可以采用JSON.stringify()和JSON.parse()來轉化移稳。
方法
localStorage的方法與sessionStorage的方法一樣
存:
sessionStorage.setItem("key", "value");
仍棠伞:sessionStorage.getItem("key");
刪除:sessionStorage.removeItem("key");
清空:sessionStorage.clear();