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文件等)