JS:存儲數(shù)據(jù)用哪個趾盐?localStorage、sessionStorage有什么區(qū)別小腊?

進入我的主頁救鲤,查看更多JS的分享!
我的代碼有多短秩冈,本篇內(nèi)容就有多短本缠!

對比cookie:

  • cookie會與服務(wù)器通信;storage只存在客服端漩仙,不參與服務(wù)器通信搓茬;
  • 同樣受同源策略影響犹赖,只有在域名一致的情況下才能查看到對應(yīng)的數(shù)據(jù)队他;
  • navigator.cookieEnabled檢測是否啟用了cookie,也就說cookie可以認(rèn)為控制是否啟用峻村,而storage則是自動啟用麸折,不會被人為關(guān)閉。(比如隱私模式下)

一粘昨、localStorage - 沒有時間限制的數(shù)據(jù)存儲

知識點:

  • 存儲 key/value 對的數(shù)據(jù)垢啼;
  • 保存的數(shù)據(jù)沒有過期時間窜锯,直到手動去刪除(包括清空瀏覽器緩存);
  • 拓展了 cookie 的 4K 限制芭析,可存儲的容量锚扎,各瀏覽器的大小不統(tǒng)一;
  • 只支持 string 類型的存儲(目前所有的瀏覽器中都會把localStorage的值類型限定為string類型)馁启,比如數(shù)字驾孔,存儲后變?yōu)樽址?/li>
  • 在瀏覽器的隱私模式下面是不可讀取的;
  • 本質(zhì)上是對字符串的讀取惯疙,如果存儲內(nèi)容多的話會消耗內(nèi)存空間翠勉,會導(dǎo)致頁面變卡;
  • 不能被爬蟲抓取到
  • 語法:setItem(key,value)霉颠、getItem(key)对碌、removeItem(key)

使用演示:

//定義Key
const userk = "uk2020";
const tokenk = "tk2020";
const objK = "ok2020";
//存儲
localStorage.setItem(userk, "以氣御碼");
localStorage.setItem(tokenk, "14332239527007001");
localStorage.setItem(objK, {
  ids: 996,
  title: "世界還在,我在加班"
});
//讀取
let userName = localStorage.getItem(userk);
let token = localStorage.getItem(tokenk);
let obj = localStorage.getItem(objK);

console.log(userName, token, obj);
//輸出:以氣御碼 14332239527007001 [object Object]

在瀏覽器的開發(fā)者工具蒿偎,Application可以查看:



存儲結(jié)構(gòu)一目了解朽们,值自動轉(zhuǎn)為字符串,因此數(shù)組诉位、對象數(shù)據(jù)的存儲华坦,一般需要轉(zhuǎn)換:

//轉(zhuǎn)換 JSON格式的字符串
localStorage.setItem(objK, JSON.stringify({ ids: 996, title: "世界還在,我在加班" }));
//獲取 
let obj = localStorage.getItem(objK);
console.log(JSON.parse(obj));
//輸出
{
    ids: 996
    title: "世界還在不从,我在加班"
}

也可以搭配URIComponent使用:

//轉(zhuǎn)換
localStorage.setItem(objK, encodeURIComponent(JSON.stringify({ ids: 996, title: "世界還在惜姐,我在加班" })));
//獲取
let obj = localStorage.getItem(objK);
console.log(JSON.parse(decodeURIComponent(obj)));

參考文檔(菜鳥教程)

二、sessionStorage

知識點:

  • 針對一個 session 的數(shù)據(jù)存儲椿息,即臨時存儲歹袁,窗口關(guān)閉就會被清除(不是瀏覽器被關(guān)閉哦);
  • 在瀏覽器的隱私模式下面是不可讀取的寝优;
  • 語法:setItem(key,value)条舔、getItem(key)、removeItem(key)

使用方式與localStorage是一樣的:

//Key
const userk = "uk2020";
const tokenk = "tk2020";
const objK = "ok2020";
//存儲
sessionStorage.setItem(userk, "以氣御碼");
sessionStorage.setItem(tokenk, "14332239527007001");
sessionStorage.setItem(objK, encodeURIComponent(JSON.stringify({
  ids: 996,
  title: "世界還在乏矾,我在加班"
})));
//獲取
let userName = sessionStorage.getItem(userk);
let token = sessionStorage.getItem(tokenk);
let obj = sessionStorage.getItem(objK);
console.log(userName, token, JSON.parse(decodeURIComponent(obj)));

三孟抗、各瀏覽器的兼容性代碼

這里就不貼代碼了,因為是文檔上有的(放在下面了)钻心,在離開之前記得點個贊咩凄硼!
MDN localStorage

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捷沸,隨后出現(xiàn)的幾起案子摊沉,更是在濱河造成了極大的恐慌,老刑警劉巖痒给,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件说墨,死亡現(xiàn)場離奇詭異骏全,居然都是意外死亡,警方通過查閱死者的電腦和手機尼斧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門姜贡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棺棵,你說我怎么就攤上這事鲁豪。” “怎么了律秃?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵爬橡,是天一觀的道長。 經(jīng)常有香客問我棒动,道長糙申,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任船惨,我火速辦了婚禮柜裸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘粱锐。我一直安慰自己疙挺,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布怜浅。 她就那樣靜靜地躺著铐然,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恶座。 梳的紋絲不亂的頭發(fā)上搀暑,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音跨琳,去河邊找鬼自点。 笑死,一個胖子當(dāng)著我的面吹牛脉让,可吹牛的內(nèi)容都是我干的桂敛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼溅潜,長吁一口氣:“原來是場噩夢啊……” “哼术唬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起伟恶,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤碴开,失蹤者是張志新(化名)和其女友劉穎毅该,沒想到半個月后博秫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體潦牛,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年挡育,在試婚紗的時候發(fā)現(xiàn)自己被綠了巴碗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡即寒,死狀恐怖橡淆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情母赵,我是刑警寧澤逸爵,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站凹嘲,受9級特大地震影響师倔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜周蹭,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一趋艘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凶朗,春花似錦瓷胧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至宛畦,卻和暖如春矛绘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背刃永。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工货矮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人斯够。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓囚玫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親读规。 傳聞我的和親對象是個殘疾皇子抓督,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353