激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - 用 JavaScript 操作 Cookie

用 JavaScript 操作 Cookie

2021-01-28 23:20前端先鋒前端小混混 JavaScript

下面我們將介紹如何用 JavaScript 在瀏覽器中設置、獲取、更新和刪除 Cookie 數據。

Web 服務器和 HTTP 服務器是無狀態的,因此當 Web 服務器將網頁發送到瀏覽器時,連接會被斷開,服務器會忘記與用戶相關的所有內容。

那么瀏覽器和 Web 服務器是怎樣記住用戶信息的?cookie 被發明出來解決這個問題。

當用戶訪問網頁時,他們的名字、唯一 ID 或其他任何信息都可以存儲在瀏覽器的 cookie 中。當用戶下次又回到網頁時,cookie 將記住他們的名字或唯一 ID。

用 JavaScript 操作 Cookie

Cookie 只是存儲在計算機瀏覽器中的小型文本文件。它們包含以下數據:

  • 保存數據的 Name-value 對
  • 日期到期時,該 cookie 失效
  • 應將其發送到的服務器的域和路徑

而cookie也有一些值得一提的限制:

  • 每個cookie的最大為 4096 字節
  • 每個域最多20個cookie(每個瀏覽器略有不同)
  • Cookie是其自己的域名專用的(網站無法讀取其他域的 Cookie,只能是它自己的)
  • 大小限制適用于整個cookie,而不僅僅是它的值

在瀏覽器中,cookie通過 DOM 被公開為 document.cookies。

下面我們將介紹如何用 JavaScript 在瀏覽器中設置、獲取、更新和刪除 Cookie 數據。

Create Cookies

用 JavaScript 在瀏覽器中設置 cookie 非常簡單!我將在下面向你展示。

(1) 設置 Cookie

以下是在瀏覽器中用 JavaScript 創建新 cookie 的執行代碼:

document.cookie = "userId=nick123" 

運行該代碼后,打開瀏覽器,你應該能在開發者工具的 Application(Safari 或Chrome)或 Storage(Firefox)中找到該 cookie。

(2) 設置 cookie 的過期時間

你還可以向 Cookie 中添加過期時間(UTC),告知瀏覽器應該在什么時候將其刪除:

document.cookie = "userId=nick123; expires=Wed, 15 Jan 2020 12:00:00 UTC" 

(3) 設置一個 Cookie 路徑

你還可以告訴瀏覽器 cookie 所屬的路徑(默認值是當前頁面的路徑):

document.cookie = "userId=nick123; expires=Wed, 15 Jan 2020 12:00:00 UTC; path=/user" 

(4) 設置 cookie 域

我們將介紹的最后一段數據是 cookie 所屬的域(默認為當前域):

document.cookie = "userId=nick123; expires=Wed, 15 Jan 2020 12:00:00 UTC; path=/user; domain=mysite.com" 

Read Cookies

通過 document.cookie 對象,用 JavaScript 讀取 cookie 也非常簡單:

(1) 讀取單個頁面所有的 Cookie

將單個頁面的所有 cookie 作為字符串獲取,每個 cookie 用分號分隔:

const cookies = document.cookie 

(2) 讀取具有特定名稱的Cookie

要訪問具有特定名稱的 cookie,我們需要獲取頁面上所有的 cookie 并解析字符串,然后查找我們想要尋找的 cookie 名稱的匹配項。

這是一個用正則表達式完成此任務的函數:

function getCookieValue(name) { 

  let result = document.cookie.match("(^|[^;]+)\\s*" + name + "\\s*=\\s*([^;]+)") 

  return result ? result.pop() : "" 

你這樣使用該函數:

getCookieValue("userId") //returns nick123 

這將返回與提供給函數的 name 參數對應的字符串值。

如果你還沒有掌握正則表達式,還有另一個同樣功能的函數:

function getCookieValue(name) { 

  const namenameString = name + "=" 

   

  const value = document.cookie.split(";").filter(item => { 

    return item.includes(nameString) 

  }) 

   

  if (value.length) { 

    return value[0].substring(nameString.length, value[0].length) 

  } else { 

    return "" 

  } 

用相同的方法使用該函數:

getCookieValue("userId") //returns nick123 

Update Cookies

你可以通過創建的方式用新值覆蓋 cookie 來更改它的值。

你可以用此代碼覆蓋本文前面創建的 cookie "userId" :

document.cookie = "userId=new_value" 

當你再次運行 getCookieValue 函數時,將返回新值:

getCookieValue("userId") //returns new_value 

Delete Cookies

你可以給 cookie 設置一個空值,并將其過期日期設置為過去的任意時間來刪除 cookie。

如果我們想要刪除前面例子的 cookie "userId" ,請按以下步驟操作:

document.cookie = "userId=; expires=Thu, 01 Jan 1970 00:00:00 UTC;" 

很簡單吧?

原文地址:https://mp.weixin.qq.com/s?__biz=MzI3NzIzMDY0NA==&mid=2247497988&idx=1&sn=cfa9a107a7ed938c75b00d0c38866619&chksm=eb6bdc5fdc1c5549563dfa21c1d591b8aff82223a1d2a3f6f97e7ffd661b214c5af84d0d2f99&mpshare=1&s

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美三级欧美成人高清www | 久久男| 欧美一级特黄a | 欧美亚洲一级 | 亚洲精久久 | 正在播放91视频 | 欧美精品一区自拍a毛片在线视频 | 久久久久久久久久久国产精品 | 一区二区三区黄色 | 精品亚洲视频在线 | 国产电影精品久久 | 成人在线视频黄色 | 日韩欧美激情视频 | 77成人影院 | 日韩黄色免费在线观看 | 欧美性生交xxxxx免费观看 | 天天草天天操 | 被摁着灌浓精囚禁高h1v1 | 国产精品一区二区三区在线播放 | 国产精品久久久久久久娇妻 | 国产中文99视频在线观看 | 日本看片一区二区三区高清 | 国产毛片电影 | 精品在线视频观看 | 精品久久一区二区三区 | 午夜视频福利 | 91精品久久久久久 | 九一免费在线观看 | 萌白酱福利视频在线网站 | 久久国产精品免费视频 | 精品一区二区在线观看视频 | 国产精品视频一区二区三区四 | 少妇av片 | 亚洲婷婷日日综合婷婷噜噜噜 | 欧美 日韩 中文 | 欧美中文字幕一区二区三区亚洲 | 中文字幕网站在线 | 欧美中文字幕一区二区三区亚洲 | 一区二区三高清 | 在线视频 中文字幕 | 色淫影院 |