js中的cookie的讀寫操作示例詳解
cookie是一小段信息,以鍵/值對(duì)的信息保存在計(jì)算機(jī)硬盤上的字符串, cookie存儲(chǔ)容量大概在4kb,不同的瀏覽器廠家對(duì)cookie大小的限制有微微的差異;cookie主要的本質(zhì)是“識(shí)別”,通過識(shí)別來(lái)做一些事情;cookie 也是無(wú)法從你的硬盤取得任何其它數(shù)據(jù),傳送電腦病毒或者獲取你的電子郵件地址。cookie是有有效期的,cookie的默認(rèn)有效期是從cookie生成至瀏覽器關(guān)閉,也可以通過設(shè)置cookie的有效期來(lái)指定其失效日期;用戶也可以禁止cookie也可以手動(dòng)刪除cookie。
cookie是字符串而且還是一個(gè)特定格式的文本字符串
格式:cookieName=cookieValue;expires=expiresDate;path=URLpath;domain=siteDomain//cookie名稱,失效日期,儲(chǔ)存URL,儲(chǔ)存域值;
cookie的創(chuàng)建方式
設(shè)置cookie我們一般都封裝成一個(gè)函數(shù):
function addCookie(sName,sValue,day) {
var expireDate = new Date();
expireDate.setDate(expireDate.getDate()+day);;
//設(shè)置失效時(shí)間
document.cookie = escape(sName) + '=' + escape(sValue) +';expires=' + expireDate.toGMTString();6 //escape()漢字轉(zhuǎn)成unicode編碼,toGMTString() 把日期對(duì)象轉(zhuǎn)成字符串
}
讀取cookie
添加了cookie之后,我們?nèi)绾蝸?lái)獲取它呢,很簡(jiǎn)單:
function getCookies() {
var showAllCookie = '';
if(!document.cookie == ''){
var arrCookie = document.cookie.split('; ');
//用spilt('; ')切割所有cookie保存在數(shù)組arrCookie中
var arrLength = arrCookie.length;
for(var i=0; i<arrLength; i++) {
showAllCookie += 'c_name:' + unescape(arrCookie[i].split('=')[0]) + 'c_value:' + unescape(arrCookie[i].split('=')[1]) + '<br>' 9 }
return showAllCookie;
}
}
cookie有有效期可自動(dòng)刪除,也可以通過設(shè)置其失效日期來(lái)立即刪除
一樣很簡(jiǎn)單,繼續(xù):
function removeCookie() {
if(document.cookie != '' && confirm('你想清理所有cookie嗎?')) {
var arrCookie = document.cookie.split('; ');
var arrLength = arrCookie.length;
var expireDate = new Date();
expireDate.setDate(expireDate.getDate()-1);
for(var i=0; i<arrLength; i++) {
var str = arrCookie[i].split('=')[0];
document.cookie = str+ '=' + ';expires=' + expireDate.toGMTString();
}
}
}
我們已經(jīng)知道如何創(chuàng)建、獲取、刪除cookie了,現(xiàn)在也該運(yùn)用cookie了
下面我們用cookie做一個(gè)簡(jiǎn)單的計(jì)時(shí)器:
var cookieCount = {};
cookieCount.count = function () {
var count = parseInt(this.getCount('myCount'));
count++;
document.cookie = 'myCount=' + count + '';
alert('第'+count+'訪問');
}
cookieCount.setCount= function () {
//首先得創(chuàng)建一個(gè)名為myCount的cookie
var expireDate = new Date();
expireDate.setDate(expireDate.getDate()+1);
document.cookie = 'myCount=' + '0' +';expires=' + expireDate.toGMTString();
}
cookieCount.getCount = function (countName) {
//獲取名為計(jì)數(shù)cookie,為其加1
var arrCookie = document.cookie.split('; ');
var arrLength = arrCookie.length;
var ini = true;
for(var i=0; i<arrLength; i++) {
if(countName == arrCookie[i].split('=')[0]){
return parseInt(arrCookie[i].split('=')[1]);
break;
}else{
ini = false;
}
}
if(ini == false)this.setCount();
return 0;
}
cookieCount.count();
cookie的路徑
本文開頭的時(shí)候提到cookie的路徑設(shè)置 cookie的路徑:path=URL;
如果在域名的子目錄創(chuàng)建的cookie,域名及其他同級(jí)目錄或上級(jí)目錄是訪問不到這個(gè)cookie的,而通過設(shè)置路徑的好處就是可以上域名以及域名的子類目錄都可以訪問到,如下:
document.cookie='cookieName=cookieValue;expires=expireDate;path=/'。
cookie域
設(shè)置域:domain=siteDomain
這個(gè)主要用在同域的情況下共享一個(gè)cookie,例如 "www.taobao.com" 與 "ued.taobao.com" 兩者是共享一個(gè)域名"taobao.com",我們?nèi)绻胱?"www.taobao.com" 下的cookie被 "ued.taobao.com" 訪問,那么就需要把path屬性設(shè)置為 "/",并且設(shè)置 cookie 的domain-->document.cookie='cookieName=cookieValue;expires=expireDate;path=/;domain=taobao.com'。
隨著web的不斷發(fā)展項(xiàng)目中的需要,HTML5提供了兩個(gè)屬性window.sessionStorage和window.localStorage,并攜帶了setItem,getItem,removeItem,clear等方法,使得本地存儲(chǔ)數(shù)據(jù)的方法操作更為簡(jiǎn)單便利
相關(guān)文章
微信小程序?qū)崿F(xiàn)Session功能及無(wú)法獲取session問題的解決方法
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)Session功能及無(wú)法獲取session問題的解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
javascript獲取鼠標(biāo)點(diǎn)擊元素對(duì)象(示例代碼)
本篇文章主要介紹了利用javascript獲取鼠標(biāo)點(diǎn)擊元素對(duì)象的示例代碼。需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助2013-12-12
微信小程序嵌入H5頁(yè)面(web-view)的方法詳解
使用<web-view>標(biāo)簽?zāi)茉谛〕绦蛑写蜷_外部網(wǎng)頁(yè),但是要打開的網(wǎng)頁(yè)的域名必須跟小程序的業(yè)務(wù)域名(業(yè)務(wù)域名可以在小程序的后臺(tái)管理界面添加)一致,否則在真機(jī)上是打不開的,下面這篇文章主要給大家介紹了關(guān)于微信小程序嵌入H5頁(yè)面(web-view)的相關(guān)資料,需要的朋友可以參考下2022-09-09
js實(shí)現(xiàn)九宮格的隨機(jī)顏色跳轉(zhuǎn)
本篇文章主要介紹了js實(shí)現(xiàn)九宮格的隨機(jī)顏色跳轉(zhuǎn)的示例代碼,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
javascript宿主對(duì)象之window.navigator詳解
這篇文章主要為大家詳細(xì)介紹了javascript宿主對(duì)象之window.navigator,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
微信小程序自定義toast彈窗效果的實(shí)現(xiàn)代碼
微信小程序里面的自帶彈窗icon只有兩種,success和loading。這篇文章主要介紹了微信小程序之自定義toast彈窗效果的實(shí)現(xiàn)代碼 ,需要的朋友可以參考下2018-11-11
js的math中缺少的數(shù)學(xué)方法小結(jié)
JavaScript?Math對(duì)象包含一些真正有用且強(qiáng)大的數(shù)學(xué)運(yùn)算,但它缺乏大多數(shù)其他語(yǔ)言提供的許多重要運(yùn)算,例如求和,乘積,奇數(shù)和偶數(shù)等等,本文就來(lái)介紹一下2023-08-08

