cookie
cookie,就是瀏覽器緩存缸剪。做的是網(wǎng)站的身份識別吗铐,配合session使用,關(guān)于cookie的特點杏节,有以下幾個方面:
1.必須在服務(wù)器環(huán)境下使用
2.在沒有設(shè)置過期時間唬渗,關(guān)閉就消失 默認(rèn)過期時間是一次會話
3. cookie是一條一條存的
4. 大小容量小,4k左右
5. 不管看到的是什么奋渔,取出來都是字符串
6 .不安全
7. 在服務(wù)器環(huán)境下镊逝,每次伴隨著請求會發(fā)往服務(wù)器
關(guān)于cookie的用法:
1.cookie 怎么存
document.cookie='name=value';
2. 怎么設(shè)置到期時間document.cookie='name=value;expires=xxxx'過期時間用事件戳表示
3.?目錄問題
?public? ? cookie1
?demo1? cookie2
整個項目網(wǎng)站,只有一套cookie嫉鲸,共享一套cookie,一般cookie存在根目錄下document.cookie='name=value;expires=xxxx;path=/'
4.怎么取cookie
document.cookie
cookie函數(shù)的設(shè)置
代碼如下:
function setCookie(name,value,iDay) {
? ? if(iDay){
? ? ? ? var oDate=new Date();
? ? ? ? oDate.setDate(oDate.getDate()+iDay);
? ? ? ? document.cookie=name+'='+value+';expires='+oDate+';path=/';
? ? }else{
? ? ? ? document.cookie=name+'='+value+';path=/';
? ? }
}
cookie函數(shù)的獲瘸潘狻:
function getCookie(name) {
? ? var arr=document.cookie.split('; ');
? ? for(var i=0;i<arr.length;i++){
? ? ? ? var arr2=arr[i].split('=');
? ? ? ? if(arr2[0]==name){
? ? ? ? ? ? return arr2[1]
? ? ? ? }
? ? }
? ? return ''
}
如何刪除cookie?
function removeCookie(name){
? ? setCookie(name,'',-2);
}
關(guān)于cookie的特點和用法就介紹到這里玄渗,下面開始介紹localStorage
localStorage(本地儲存)
一:特點與局限:
localStorage的優(yōu)勢
1减江、localStorage拓展了cookie的4K限制
2、localStorage會可以將第一次請求的數(shù)據(jù)直接存儲到本地捻爷,這個相當(dāng)于一個5M大小的針對于前端頁面的數(shù)據(jù)庫辈灼,相比于cookie可以節(jié)約帶寬,但是這個卻是只有在高版本的瀏覽器中才支持的
localStorage的局限
1也榄、瀏覽器的大小不統(tǒng)一巡莹,并且在IE8以上的IE版本才支持localStorage這個屬性
2司志、目前所有的瀏覽器中都會把localStorage的值類型限定為string類型,這個在對我們?nèi)粘1容^常見的JSON對象類型需要一些轉(zhuǎn)換
3降宅、localStorage在瀏覽器的隱私模式下面是不可讀取的
4骂远、localStorage本質(zhì)上是對字符串的讀取,如果存儲內(nèi)容多的話會消耗內(nèi)存空間腰根,會導(dǎo)致頁面變卡
5激才、localStorage不能被爬蟲抓取到
localStorage與sessionStorage的唯一一點區(qū)別就是localStorage屬于永久性存儲,而sessionStorage屬于當(dāng)會話結(jié)束的時候额嘿,sessionStorage中的鍵值對會被清空
localStorage的用法:
1.? ?localStorage.name=value;
? ? ? ? ? localStorage.name
? ? ? ? ? delete localStorage.name
2.? localStorage.setItem(name,value)
? ? localStorage.getItem(name)
? ? localStorage.removeItem(name)
注:這兩種方法不能混用瘸恼!
清除?localStorage: localStorage.clear();
關(guān)于sessionStorage:
只要關(guān)閉瀏覽器緩存就消失
使用方法:
1.? ? ? sessionStorage.name=value;
? ? ? ? ?sessionStorage.name
? ? ? ? ?delete sessionStorage.name
2.? ? ?sessionStorage.setItem(name,value)
? ? ? ? sessionStorage.getItem(name)
? ? ? ? sessionStorage.removeItem(name)
3.? ? 全部清除 sessionStorage.clear();
關(guān)于這三者的特點和使用就介紹完了,下面總結(jié)一下他們的區(qū)別册养。
sessionStorage 东帅、localStorage 和 cookie 之間的區(qū)別
共同點:都是保存在瀏覽器端,且同源的球拦。區(qū)別:cookie數(shù)據(jù)始終在同源的http請求中攜帶(即使不需要)靠闭,即cookie在瀏覽器和服務(wù)器間來回傳遞。而sessionStorage和localStorage不會自動把數(shù)據(jù)發(fā)給服務(wù)器坎炼,僅在本地保存愧膀。cookie數(shù)據(jù)還有路徑(path)的概念,可以限制cookie只屬于某個路徑下谣光。存儲大小限制也不同檩淋,cookie數(shù)據(jù)不能超過4k,同時因為每次http請求都會攜帶cookie抢肛,所以cookie只適合保存很小的數(shù)據(jù)恕酸,如會話標(biāo)識缅刽。sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多战坤,可以達(dá)到5M或更大莲镣。數(shù)據(jù)有效期不同福稳,sessionStorage:僅在當(dāng)前瀏覽器窗口關(guān)閉前有效,自然也就不可能持久保持瑞侮;localStorage:始終有效的圆,窗口或瀏覽器關(guān)閉也一直保存,因此用作持久數(shù)據(jù)半火;cookie只在設(shè)置的cookie過期時間之前一直有效越妈,即使窗口或瀏覽器關(guān)閉。作用域不同钮糖,sessionStorage不在不同的瀏覽器窗口中共享梅掠,即使是同一個頁面酌住;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的阎抒。Web Storage 支持事件通知機(jī)制酪我,可以將數(shù)據(jù)更新的通知發(fā)送給監(jiān)聽者。Web Storage 的 api 接口使用更方便且叁。