cookie與本地存儲

cookie也叫HTTP Cookie,最初是客戶端與服務(wù)器端進(jìn)行會話使用的

document.cookie = "username = xiaoming";(創(chuàng)建cookie的方式)


cookie由名/值對形式的文本組成:name=value。完整格式為:

name=value; [expires=date]; [path=path]; [domain=somewhere.com]; [secure]

中括號是可選,name=value是必選。

document.cookie = 'user=xiaoming'//寫入

alert(document.cookie); //讀取


2:創(chuàng)建cookie后的過期時間Cookie雖然在持久保存客戶端用戶數(shù)據(jù)提供了方便,分擔(dān)了服務(wù)器存儲的負(fù)擔(dān)。但是還有很多局限性的。

第一:每個特定的域名下最多生成20個cookie(根據(jù)不同的瀏覽器有所區(qū)別)。

1.IE6或更低版本最多20個cookie

2.IE7和之后的版本最多可以50個cookie。IE7最初也只能20個,之后因被升級不定后增加了。

3.Firefox最多50個cookie

4.Opera最多30個cookie

5.Safari和Chrome沒有做硬性限制。

為了更好的兼容性,所以按照最低的要求來,也就是最多不得超過20個cookie。當(dāng)超過指定的 cookie時,瀏覽器會清理掉早期的cookie。IE和Opera會清理近期最少使用的cookie,F(xiàn)irefox會隨機(jī)清理cookie。

第二:cookie的最大大約為4096字節(jié)(4k),為了更好的兼容性,一般不能超過4095字節(jié)即可。

第三:cookie存儲在客戶端的文本文件,所以特別重要和敏感的數(shù)據(jù)是不建議保存在cookie的。比如銀行卡號,用戶密碼等

第四: cookie 會把數(shù)據(jù)發(fā)送到服務(wù)端? 有些會造成不必要的帶寬浪費

cookie 不適合大量數(shù)據(jù)的存儲,因為它們由每個對服務(wù)器的請求來傳遞,這使得 cookie 速度很慢而且效率也不高。

Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務(wù)器端記錄信息確定用戶身份。`

var d = new Date();

// d.setDate(d.getDate() + 3);

d.setMinutes(d.getMinutes() + 1);

document.cookie = "user = Jack;expires = " + d;

//3:創(chuàng)建cookie

function setCookie(name,value,day){

var cookieText = name + "=" + value;

if(day > 0){

var d = new Date();

d.setDate(d.getDate() + day);

cookieText = cookieText + ";expires= " + d;

}

document.cookie = cookieText;

}

setCookie("a","Rose",1);

setCookie("bbb","Jack",1);

setCookie("c","xiaoming",1);

document.write(document.cookie)

// alert(document.cookie.substring(2));

// var str = "c";

// var s = document.cookie.indexOf(str + "=");//8

// var e = document.cookie.indexOf(";",s);//14

// var start = s + str.length + 1;

// alert(document.cookie.substring(start,e))

// a=Rose

// substring(2)

// substr(2,4)

//獲取

function getCookie(name){

var start,end;

if(document.cookie.indexOf(name + "=") != -1){

start = document.cookie.indexOf(name + "=");

end = document.cookie.indexOf(";",start);

if(end == -1){

end = document.cookie.length;

}

return document.cookie.substring(start + name.length + 1,end);

}

}

// alert(getCookie("a"));

// alert(getCookie("bbb"));

// alert(getCookie("c"));

刪除cookie

function unsetCookie(name){

document.cookie = name + "=;expires = " + new Date(0);

}

unsetCookie("a");

//設(shè)置cookie

function setCookie(name,value,day){

var cookieText = name + "=" + value;

if(day > 0){

var d = new Date();

d.setDate(d.getDate() + day);

cookieText += ";expires = " + d;

}

document.cookie = cookieText;

}

//獲取cookie

function getCookie(name){

var start,end;

if(document.cookie.indexOf(name + "=") != -1){

start = document.cookie.indexOf(name + "=");

end = document.cookie.indexOf(";",start);

if(end == -1){

end = document.cookie.length;

}

return document.cookie.substring(start + name.length + 1 , end);

}

}

var u = getCookie("username");

var newu;

if(u != "" && u != null){

alert("歡迎你回來,親愛的" + u);

}else{

newu = prompt("請輸入你的用戶名");

if(newu != null && newu != ""){

setCookie("username",newu,1);

}

}

本地存儲

localStorage.setItem("username","xiaoming");

//本地存儲第一種設(shè)置方式

// localStore.setItem(key,value)

//本地存儲第二種設(shè)置方式

// localStorage.屬性名 = 屬性值;

localStorage.book = "piao";

localStorage.a = "xiaohuang";

// alert(localStorage.book);

// alert(localStorage.username);

// 獲取本地存儲

// 第一種方式:

// localStorage.屬性名

// 第二種方式:

刪除

// localStorage.getItem("屬性名")

// alert(localStorage.getItem("username"))

localStorage.removeItem("username")

//刪除所有的存儲信息(清空所有信息)

localStorage.clear();

應(yīng)用緩存

manifest="demo.appcache"

cookie由名/值對形式的文本組成:name=value。完整格式為:

name=value; [expires=date]; [path=path]; [domain=somewhere.com]; [secure]

中括號是可選,name=value是必選。

document.cookie = 'user=xiaoming'//寫入

alert(document.cookie); //讀取

cookie由名/值對形式的文本組成:name=value。完整格式為:

name=value; [expires=date]; [path=path]; [domain=somewhere.com]; [secure]

中括號是可選,name=value是必選。

document.cookie = 'user=xiaoming'//寫入

alert(document.cookie); //讀取

cookie由名/值對形式的文本組成:name=value。完整格式為:

name=value; [expires=date]; [path=path]; [domain=somewhere.com]; [secure]

中括號是可選,name=value是必選。

document.cookie = 'user=xiaoming'//寫入

alert(document.cookie); //讀取

Cookie雖然在持久保存客戶端用戶數(shù)據(jù)提供了方便,分擔(dān)了服務(wù)器存儲的負(fù)擔(dān)。但是還有很多局限性的。

第一:每個特定的域名下最多生成20個cookie(根據(jù)不同的瀏覽器有所區(qū)別)。

1.IE6或更低版本最多20個cookie

2.IE7和之后的版本最多可以50個cookie。IE7最初也只能20個,之后因被升級不定后增加了。

3.Firefox最多50個cookie

4.Opera最多30個cookie

5.Safari和Chrome沒有做硬性限制。

為了更好的兼容性,所以按照最低的要求來,也就是最多不得超過20個cookie。當(dāng)超過指定的 cookie時,瀏覽器會清理掉早期的cookie。IE和Opera會清理近期最少使用的cookie,F(xiàn)irefox會隨機(jī)清理cookie。

第二:cookie的最大大約為4096字節(jié)(4k),為了更好的兼容性,一般不能超過4095字節(jié)即可。

第三:cookie存儲在客戶端的文本文件,所以特別重要和敏感的數(shù)據(jù)是不建議保存在cookie的。比如銀行卡號,用戶密碼等

第四: cookie 會把數(shù)據(jù)發(fā)送到服務(wù)端? 有些會造成不必要的帶寬浪費

cookie 不適合大量數(shù)據(jù)的存儲,因為它們由每個對服務(wù)器的請求來傳遞,這使得 cookie 速度很慢而且效率也不高。

Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務(wù)器端記錄信息確定用戶身份。`

Cookie雖然在持久保存客戶端用戶數(shù)據(jù)提供了方便,分擔(dān)了服務(wù)器存儲的負(fù)擔(dān)。但是還有很多局限性的。

第一:每個特定的域名下最多生成20個cookie(根據(jù)不同的瀏覽器有所區(qū)別)。

1.IE6或更低版本最多20個cookie

2.IE7和之后的版本最多可以50個cookie。IE7最初也只能20個,之后因被升級不定后增加了。

3.Firefox最多50個cookie

4.Opera最多30個cookie

5.Safari和Chrome沒有做硬性限制。

為了更好的兼容性,所以按照最低的要求來,也就是最多不得超過20個cookie。當(dāng)超過指定的 cookie時,瀏覽器會清理掉早期的cookie。IE和Opera會清理近期最少使用的cookie,F(xiàn)irefox會隨機(jī)清理cookie。

第二:cookie的最大大約為4096字節(jié)(4k),為了更好的兼容性,一般不能超過4095字節(jié)即可。

第三:cookie存儲在客戶端的文本文件,所以特別重要和敏感的數(shù)據(jù)是不建議保存在cookie的。比如銀行卡號,用戶密碼等

第四: cookie 會把數(shù)據(jù)發(fā)送到服務(wù)端? 有些會造成不必要的帶寬浪費

cookie 不適合大量數(shù)據(jù)的存儲,因為它們由每個對服務(wù)器的請求來傳遞,這使得 cookie 速度很慢而且效率也不高。

Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務(wù)器端記錄信息確定用戶身份。

cookie 和session 的區(qū)別:`

1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。

2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙

考慮到安全應(yīng)當(dāng)使用session。

3、session會在一定時間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能

考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE。

4、單個cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。

5、所以個人建議:

將登陸信息等重要信息存放為SESSION

其他信息如果需要保留,可以放在COOKIE中

sessionStorage: session即會話的意思,在這里的session是指用戶瀏覽某個網(wǎng)站時,從進(jìn)入網(wǎng)站到關(guān)閉網(wǎng)站這個時間段,session對象的有效期就只有這么長。

sessionStorage 方法針對一個 session 進(jìn)行數(shù)據(jù)存儲。當(dāng)用戶關(guān)閉瀏覽器窗口后,數(shù)據(jù)會被刪除。

localStorage: 將數(shù)據(jù)保存在客戶端硬件設(shè)備上,不管它是什么,意思就是下次打開計算機(jī)時候數(shù)據(jù)還在。

localStorage 方法存儲的數(shù)據(jù)沒有時間限制。第二天、第二周或下一年之后,數(shù)據(jù)依然可用。

兩者區(qū)別就是一個作為臨時保存,一個長期保存。

應(yīng)用程序緩存為應(yīng)用帶來三個優(yōu)勢:

離線瀏覽 - 用戶可在應(yīng)用離線時使用它們

速度 - 已緩存資源加載得更快

減少服務(wù)器負(fù)載 - 瀏覽器將只從服務(wù)器下載更新過或更改過的資源。

設(shè)置服務(wù)器識別appcache文件

擴(kuò)展名:.appcache? ? 類型:cache manifest? cache:6? 需要加載的文件(如js/css/jpg文件等)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、cookie 2、localStorage 3、 touch.js插件的使用使用方法請戳:http://tou...
    吹蒲公英的貓閱讀 365評論 0 0
  • 什么是 Cookie “cookie 是存儲于訪問者的計算機(jī)中的變量。每當(dāng)同一臺計算機(jī)通過瀏覽器請求某個頁面時,就...
    恩德_b0c2閱讀 546評論 0 3
  • cookie也叫HTTP Cookie,最初是客戶端與服務(wù)器端進(jìn)行會話使用的。比如,會員登錄,下次回訪網(wǎng)站時無須登...
    dxxwdong閱讀 424評論 0 1
  • 《ijs》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 5,672評論 0 7
  • 背景在HTTP協(xié)議的定義中,采用了一種機(jī)制來記錄客戶端和服務(wù)器端交互的信息,這種機(jī)制被稱為cookie,cooki...
    時芥藍(lán)閱讀 2,478評論 1 17

友情鏈接更多精彩內(nèi)容