JavaScript之cookie技術(shù)詳解
運(yùn)用JS設(shè)置cookie、讀取cookie、刪除cookie
JavaScript是運(yùn)行在客戶端的腳本,因此一般是不能夠設(shè)置Session的,因?yàn)镾ession是運(yùn)行在服務(wù)器端的。
而cookie是運(yùn)行在客戶端的,所以可以用JS來設(shè)置cookie.
假設(shè)有這樣一種情況,在某個(gè)用例流程中,由A頁(yè)面跳至B頁(yè)面,若在A頁(yè)面中采用JS用變量temp保存了某一變量的值,在B頁(yè)面的時(shí)候,同樣需要使用JS來引用temp的變量值,對(duì)于JS中的全局變量或者靜態(tài)變量的生命周期是有限的,當(dāng)發(fā)生頁(yè)面跳轉(zhuǎn)或者頁(yè)面關(guān)閉的時(shí)候,這些變量的值會(huì)重新載入,即沒有達(dá)到保存的效果。解決這個(gè)問題的最好的方案是采用cookie來保存該變量的值,那么如何來設(shè)置和讀取cookie呢?
首先需要稍微了解一下cookie的結(jié)構(gòu),簡(jiǎn)單地說:cookie是以鍵值對(duì)的形式保存的,即key=value的格式。各個(gè)cookie之間一般是以“;”分隔。
JS設(shè)置cookie:
假設(shè)在A頁(yè)面中要保存變量username的值(“jack”)到cookie中,key值為name,則相應(yīng)的JS代碼為:
document.cookie="name="+username;
JS讀取cookie:
假設(shè)cookie中存儲(chǔ)的內(nèi)容為:name=jack;password=123
則在B頁(yè)面中獲取變量username的值的JS代碼如下:
var username=document.cookie.split(";")[0].split("=")[1];
//JS操作cookies方法!
//寫cookies
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();
}
//讀取cookies
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
//刪除cookies
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();
}
//使用示例
setCookie("name","hayden");
alert(getCookie("name"));
//如果需要設(shè)定自定義過期時(shí)間
//那么把上面的setCookie 函數(shù)換成下面兩個(gè)函數(shù)就ok;
//程序代碼
function setCookie(name,value,time)
{
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getsec(str)
{
alert(str);
var str1=str.substring(1,str.length)*1;
var str2=str.substring(0,1);
if (str2=="s")
{
return str1*1000;
}
else if (str2=="h")
{
return str1*60*60*1000;
}
else if (str2=="d")
{
return str1*24*60*60*1000;
}
}
//這是有設(shè)定過期時(shí)間的使用示例: //s20是代表20秒 //h是指小時(shí),如12小時(shí)則是:h12 //d是天數(shù),30天則:d30 setCookie(“name”,”hayden”,”s20”);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
uniapp發(fā)送formdata表單請(qǐng)求2種方法(全網(wǎng)最簡(jiǎn)單方法)
這篇文章主要給大家介紹了關(guān)于uniapp發(fā)送formdata表單請(qǐng)求2種方法的相關(guān)資料,本文介紹的方法應(yīng)該是全網(wǎng)最簡(jiǎn)單方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09
使用cookie繞過驗(yàn)證碼登錄的實(shí)現(xiàn)代碼
本文通過實(shí)例代碼給大家詳細(xì)介紹了使用cookie繞過驗(yàn)證碼登錄的實(shí)現(xiàn)方法,需要的朋友參考下吧2017-10-10
JavaScript創(chuàng)建類/對(duì)象的幾種方式概述及實(shí)例
JS中的對(duì)象強(qiáng)調(diào)的是一種復(fù)合類型,JS中創(chuàng)建對(duì)象及對(duì)對(duì)象的訪問是極其靈活的,下面與大家分享下創(chuàng)建類/對(duì)象的幾種方式,感興趣的朋友可以了解下哈2013-05-05
js常用系統(tǒng)函數(shù)用法實(shí)例分析
這篇文章主要介紹了js常用系統(tǒng)函數(shù)用法,實(shí)例分析了escape、parseInt、parseFloat、isNaN、isFinite等函數(shù)的用法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
JavaScript中的document.querySelector()方法使用詳解
HTML的DOM querySelector()方法可以不需要額外的jQuery等支持,也可以方便的獲取DOM元素,語(yǔ)法跟jQuery類似,這篇文章主要給大家介紹了關(guān)于JavaScript中document.querySelector()方法使用的相關(guān)資料,需要的朋友可以參考下2024-06-06
js對(duì)圖片base64編碼字符串進(jìn)行解碼并輸出圖像示例
這篇文章主要介紹了js對(duì)圖片base64編碼字符串進(jìn)行解碼并輸出圖像的具體實(shí)現(xiàn),大家可以參考下面的示例2014-03-03

