淺顯易懂的cookie的使用(設(shè)置和獲取cookie緩存)

2020-4-22    前端達(dá)人

js中cookie的使用(設(shè)置和獲取cookie緩存)
生為一個(gè)已經(jīng)入職一年多的前端小白,第一次寫博客還有點(diǎn)小激動(dòng),有不足的地方還希望大家多多指出,因?yàn)樽罱?xiàng)目有涉及到利用cookie緩存數(shù)據(jù),所以在這邊再鞏固一下。

1、cookie的定義
在使用瀏覽器中,經(jīng)常涉及到數(shù)據(jù)的交換,比如你登錄系統(tǒng)賬號(hào),登錄一個(gè)頁面。我們經(jīng)常會(huì)在此時(shí)設(shè)置記住賬號(hào)啥的,或者自動(dòng)登錄選項(xiàng)。那這些都是怎么實(shí)現(xiàn)的呢,答案就是今天的主角cookie了,Cookie是由HTTP服務(wù)器設(shè)置的,保存在瀏覽器中,但HTTP協(xié)議是一種無狀態(tài)協(xié)議,在數(shù)據(jù)交換完畢后,服務(wù)器端和客戶端的鏈接就會(huì)關(guān)閉,每次交換數(shù)據(jù)都需要建立新的鏈接。
從JavaScript的角度看,cookie 就是一些字符串信息。這些信息存放在客戶端的計(jì)算機(jī)中,用于客戶端計(jì)算機(jī)與服務(wù)器之間傳遞信息。
在JavaScript中可以通過 document.cookie 來讀取或設(shè)置這些信息。由于 cookie 多用在客戶端和服務(wù)端之間進(jìn)行通信,所以除了JavaScript以外,服務(wù)端的語言(如PHP)也可以存取 cookie。

2、cookie的使用
設(shè)置cookie
function setCookie(c_name, value, expiredays) {
       var exdate = new Date()
       exdate.setDate(exdate.getDate() + expiredays)
       document.cookie = c_name + "=" + escape(value) +
           ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString())+";path=/";
   }
1
2
3
4
5
6
調(diào)用該方法如:

var userId="123456";
setCookie("userId", userId, 30);
1
2
下面是里面參數(shù)的意義

參數(shù) 含義
c_name 自己定義的cookie名稱
value 需要放在定義的c_name 中的值
expiredays cookie的有效期
這里有一個(gè)要注意點(diǎn)就是 " path=/"
" path=/"是只存下的cookie再該項(xiàng)目所有頁面都能去獲取,如果你想只存到弄個(gè)特定目錄可以在path中指定路徑,如:“path=/views/myHomePage”,z這樣你可以在/views/myHomePage文件下所有頁面都能取到你存的cookie了。

取回cookie
 function getCookie(c_name) {
        if (document.cookie.length > 0) {
            c_start = document.cookie.indexOf(c_name + "=")
            if (c_start != -1) {
                c_start = c_start + c_name.length + 1
                c_end = document.cookie.indexOf(";", c_start)
                if (c_end == -1) c_end = document.cookie.length
                return unescape(document.cookie.substring(c_start, c_end))
            }
        }
        return ""
    }
1
2
3
4
5
6
7
8
9
10
11
12
調(diào)用該方法如:

var newUserId= getCookie("userId");
console.log(newUserId)
alert(newUserId)
————————————————
版權(quán)聲明:本文為CSDN博主「前端陳偉霆」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_43927397/article/details/105658614







分享本文至:

日歷

鏈接

個(gè)人資料

存檔