摘要:之前只知道的一些存儲(chǔ)量,過期時(shí)間上的區(qū)別,今天仔細(xì)研究了一下它們用法上的區(qū)別。這個(gè)限制確保了儲(chǔ)存在中的信息只能讓批準(zhǔn)的接受者訪問,而無法被其他域訪問。中所有的名字和值都是經(jīng)過編碼的,所以必須使用來解碼。屬于永久性存儲(chǔ)。
之前只知道cookie、sessionStorage、localStorage的一些存儲(chǔ)量,過期時(shí)間上的區(qū)別,今天仔細(xì)研究了一下它們用法上的區(qū)別。 cookie
cookie的本質(zhì)是在綁定的特定的域名下的。當(dāng)服務(wù)器發(fā)送的HTTP響應(yīng)頭中包含cookie會(huì)話信息時(shí)({key,value}形式),瀏覽器會(huì)保存這樣的會(huì)話信息,并在再次給創(chuàng)建它的域名發(fā)送請(qǐng)求時(shí),都會(huì)包含這個(gè)cookie。這個(gè)限制確保了儲(chǔ)存在cookie中的信息只能讓批準(zhǔn)的接受者訪問,而無法被其他域訪問。
JavaScript中的cookie
在JavaScript中操作cookie有點(diǎn)復(fù)雜,因?yàn)橹挥蠦OM的document.cookie屬性,返回頁面可用的所有cookie的字符串,一系列有逗號(hào)分隔開的鍵值對(duì)。
document.cookie屬性可以設(shè)置新的cookie字符串,并不會(huì)覆蓋cookie,除非cookie的名稱已經(jīng)存在。
cookie中所有的名字和值都是經(jīng)過URL編碼的,所以必須使用decodeURIComponent()來解碼。
由于JavaScript中讀寫cookie不夠直觀,所以需要封裝一些方法來方便cookie的操作。例如:讀、寫、刪除操作。
設(shè)置cookie:
function setCookie(name,value) { var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Days*24*60*60*1000); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); }
讀取cookie
function getCookie(name) { var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); return (arr=document.cookie.match(reg))?unescape(arr[2]):null; }
刪除cookie
function delCookie(name)
{
var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval=getCookie(name); if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
這樣封裝起來就很方便使用啦!
sessionStorage和localStoragesessionStorage和localStorage都是在HTML5中提出的,都是以window對(duì)象屬性的形式存在,用來在客戶端存儲(chǔ)會(huì)話數(shù)據(jù)。
sessionStorage和localStorage都是Storage類型的實(shí)例。所以它們有clear()、getItem(name)、key(index)、removeItem(name)、setItem(name,value)方法。
sessionStorage對(duì)象存儲(chǔ)特定于某個(gè)會(huì)話的數(shù)據(jù),也就是該數(shù)據(jù)只保存到瀏覽器關(guān)閉。localStorage屬于永久性存儲(chǔ)。切它們的存儲(chǔ)量也大于cookie,因?yàn)g覽器而已,基本可以達(dá)到有5M。
sessionStorage和localStorage只能存儲(chǔ)字符串類型數(shù)據(jù),無法直接存儲(chǔ)數(shù)組類型和JSON對(duì)象,如果有需求該怎樣做呢?其實(shí)也很簡(jiǎn)單。
首先將JSON對(duì)象通過JSON.stringify()方法轉(zhuǎn)換成字符串,再存儲(chǔ)到sessionstorage中,然后通過JSON.parse()方法將字符串轉(zhuǎn)換成JSON格式即可。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96231.html
摘要:快速上手先說區(qū)別數(shù)據(jù)大小不能超過??梢栽诤蠖嗽O(shè)置修改,數(shù)據(jù)僅在本地瀏覽器保存。數(shù)據(jù)存儲(chǔ)在瀏覽器僅在瀏覽器為關(guān)閉的狀態(tài),關(guān)閉窗口后數(shù)據(jù)就會(huì)銷毀。默認(rèn)情況下,屬于當(dāng)前頁面。 cookie、Sessionstorage、Localstorage快速上手 先說區(qū)別 cookie: 數(shù)據(jù)大小不能超過4KB。 不管是否有需求,cookie數(shù)據(jù)都會(huì)在HTTP請(qǐng)求中攜帶,在瀏覽器和服務(wù)器中來回傳遞,...
摘要:顧名思義,確實(shí)非常小,它的大小限制為左右,是網(wǎng)景公司的前雇員在年月的發(fā)明。是標(biāo)準(zhǔn)中新加入的技術(shù),它并不是什么劃時(shí)代的新東西。特性與的接口類似,但保存數(shù)據(jù)的生命周期與不同。但當(dāng)頁面關(guān)閉后,中的數(shù)據(jù)就會(huì)被清空。 本文最初發(fā)布于我的個(gè)人博客:咀嚼之味 最近在找暑期實(shí)習(xí),其中百度、網(wǎng)易游戲、阿里的面試都問到一些關(guān)于HTML5的東西,問題大多是這樣開頭的:你用過什么HTML5的技術(shù)呀?...
摘要:的區(qū)別及用法是本地存儲(chǔ),存儲(chǔ)在客戶端,包括和。僅在當(dāng)前會(huì)話下有效,關(guān)閉頁面或?yàn)g覽器后被清除。源生接口可以接受,亦可再次封裝來對(duì)和有更好的支持。但需要程序員自己封裝,源生的接口不友好。每個(gè)最多只能有條,每個(gè)長(zhǎng)度不能超過。 localStorage、sessionStorage、Cookie的區(qū)別及用法 showImg(https://segmentfault.com/img/bVYLlH...
摘要:快速上手先說區(qū)別數(shù)據(jù)大小不能超過??梢栽诤蠖嗽O(shè)置修改,數(shù)據(jù)僅在本地瀏覽器保存。數(shù)據(jù)存儲(chǔ)在瀏覽器僅在瀏覽器為關(guān)閉的狀態(tài),關(guān)閉窗口后數(shù)據(jù)就會(huì)銷毀。默認(rèn)情況下,屬于當(dāng)前頁面。 cookie、Sessionstorage、Localstorage快速上手 先說區(qū)別 cookie: 數(shù)據(jù)大小不能超過4KB。 不管是否有需求,cookie數(shù)據(jù)都會(huì)在HTTP請(qǐng)求中攜帶,在瀏覽器和服務(wù)器中來回傳遞,...
閱讀 845·2019-08-30 15:54
閱讀 451·2019-08-30 12:51
閱讀 2044·2019-08-29 16:28
閱讀 2855·2019-08-29 16:10
閱讀 2343·2019-08-29 14:21
閱讀 422·2019-08-29 14:09
閱讀 2143·2019-08-23 16:13
閱讀 1246·2019-08-23 13:59