cookie和本地存儲的區(qū)別

cookie

基本概念

  1. cookie非常小栓霜,限制在4kb左右,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie。
  2. 如果沒有設(shè)置時(shí)間,則表示cookie的生命期為瀏覽器會話期間荣病,關(guān)閉瀏覽器窗口,cookie就會消失渗柿,這種被稱為會話cookie个盆,它會被保存在內(nèi)存中。
  3. 當(dāng)設(shè)置了過期時(shí)間做祝,瀏覽器會把cookie保存在硬盤中砾省,關(guān)閉瀏覽器之后任然有效,直到超過設(shè)定的過期時(shí)間混槐。

設(shè)置和獲取cookie的方法

原生

// 使用js創(chuàng)建cookie
document.cookie="username=John Doe";
// 添加一個(gè)過期時(shí)間
document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 GMT";
// 使用path 告訴瀏覽器cookie的路徑
document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/";


//讀取
var x = document.cookie;
// 修改  舊的值將會被覆蓋
document.cookie="username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/";

// 刪除 刪除 cookie 非常簡單。您只需要設(shè)置 expires 參數(shù)為以前的時(shí)間即可
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

封裝

function setCookie(cname,cvalue,exdays)
{
  var d = new Date();
  d.setTime(d.getTime()+(exdays*24*60*60*1000));
  var expires = "expires="+d.toGMTString();
  document.cookie = cname + "=" + cvalue + "; " + expires;
}

function getCookie(cname)
{
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for(var i=0; i<ca.length; i++) 
  {
    var c = ca[i].trim();
    if (c.indexOf(name)==0) return c.substring(name.length,c.length);
  }
  return "";
}

localStorage和sessionStorage

優(yōu)勢

  • 擴(kuò)展了cookie的4k限制轩性,為了更大的容量存儲而設(shè)計(jì)的声登,是在瀏覽器端存儲的數(shù)據(jù)
  • 減少網(wǎng)絡(luò)流量,快速的讀取數(shù)據(jù),性能較好悯嗓,可以作為臨時(shí)存儲
  • localStorage是永久性存儲件舵,而sessionStorage屬于當(dāng)會話結(jié)束的時(shí)候,就會被清空

劣勢

  • 本質(zhì)上是對字符串的讀取脯厨,內(nèi)容較多的時(shí)候 會消耗內(nèi)存铅祸,導(dǎo)致頁面變卡,
  • 不能被爬蟲抓取到

三者的異同

特性名稱 cookie localStorage sessionStorage
數(shù)據(jù)的聲明周期 可設(shè)置失效時(shí)間合武,默認(rèn)是關(guān)閉瀏覽器后失效 除非被清除临梗,否則永久保存 僅僅在當(dāng)前會話下有效,關(guān)閉頁面或者瀏覽器后會被清除
存放的數(shù)據(jù)大小 4k左右 一般為5M 一般為5M
與服務(wù)端通信 會在http頭中攜帶稼跳,如果使用cookie保存過多數(shù)據(jù)會帶來性能問題 僅在瀏覽器端保存不參與服務(wù)器的通信 僅在瀏覽器端保存不參與服務(wù)器的通信
易用性 需要自己封裝 有現(xiàn)成的api接口可以使用 有現(xiàn)成的api接口可以使用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盟庞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子汤善,更是在濱河造成了極大的恐慌什猖,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件红淡,死亡現(xiàn)場離奇詭異不狮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)在旱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門荤傲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人颈渊,你說我怎么就攤上這事遂黍。” “怎么了俊嗽?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵雾家,是天一觀的道長。 經(jīng)常有香客問我绍豁,道長芯咧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任竹揍,我火速辦了婚禮敬飒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘芬位。我一直安慰自己无拗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布昧碉。 她就那樣靜靜地躺著英染,像睡著了一般揽惹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上四康,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天搪搏,我揣著相機(jī)與錄音,去河邊找鬼闪金。 笑死疯溺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哎垦。 我是一名探鬼主播囱嫩,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼撼泛!你這毒婦竟也來了挠说?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤愿题,失蹤者是張志新(化名)和其女友劉穎损俭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體潘酗,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杆兵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仔夺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琐脏。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖缸兔,靈堂內(nèi)的尸體忽然破棺而出日裙,到底是詐尸還是另有隱情,我是刑警寧澤惰蜜,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布昂拂,位于F島的核電站,受9級特大地震影響抛猖,放射性物質(zhì)發(fā)生泄漏格侯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一财著、第九天 我趴在偏房一處隱蔽的房頂上張望联四。 院中可真熱鬧,春花似錦撑教、人聲如沸朝墩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鱼辙。三九已至廉嚼,卻和暖如春玫镐,著一層夾襖步出監(jiān)牢的瞬間倒戏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工恐似, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留杜跷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓矫夷,卻偏偏與公主長得像葛闷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子双藕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容