公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

還在用document.cookie操作cookie嗎?試試這個(gè)CookieStore

freeflydom
2025年4月12日 10:29 本文熱度 453

以前在開發(fā)時(shí)想要獲取和修改cookie一直都是使用document.cookie來進(jìn)行操作的,而且cookie的屬性又很多,賦值起來十分不方便,并且獲取的時(shí)候不能根據(jù)屬性名進(jìn)行精確獲取單獨(dú)的一條cookie,真的很難搞誒。那有沒有什么比較現(xiàn)代化的API來幫助我們更好的處理cookie呢。

需棄用的document.cookie

我們先來看看document.cookie處理方式

假設(shè)我想要獲取當(dāng)前文檔某一個(gè)cookie,那我也必須使用document.cookie來獲取所有非httpOnly, secure的cookie,然后在進(jìn)行提取。

有時(shí)候我們寫模板就需要通過結(jié)果去獲取數(shù)據(jù),但是接口有需要使用cookies中的某個(gè)cookie,所以就需要進(jìn)行額外提取。比如我要獲取alimail的_csrf_token_cookie,就需要下面這樣提取。

document.cookie
  .split("; ") // 以分號(hào)和空格分隔
  .find((item) => item.includes("_csrf_token_="))
  ?.replace("_csrf_token_=", "");

目前在開發(fā)中前端寫入cookie沒有遇見,但是也很麻煩,特別是在定義cookie的不同屬性,而且不支持一次性寫入多cookie。

并且設(shè)置的時(shí)候還有些特殊的限制需要注意。

  • 路徑限制
    • 設(shè)置 Path=/app 時(shí),該 Cookie 僅在路徑 /app 及其子路徑(如 /app/sub  下生效。
    • 若當(dāng)前頁面路徑不在 /app 或其子路徑下,瀏覽器會(huì)忽略此 Cookie。

  • 域名不匹配

    • 默認(rèn)情況下,Cookie 的 Domain 屬性為當(dāng)前頁面的域名。
    • 若嘗試設(shè)置跨域 Cookie(如從 www.example.com 設(shè)置 Domain=example.com),需確保當(dāng)前域名是子域名且符合瀏覽器安全策略。
  • 未編碼特殊字符

    • 由于;、,、空格等符號(hào)在cookie中有特殊用處,鍵值不包含它們,如果包含需使用 encodeURIComponent() 編碼。

各位兄弟你們?cè)谌粘i_發(fā)中如何使用的cookie啊。

趕快來使用CookieStore

CookieStore 是瀏覽器提供的一個(gè)新的 API,旨在更現(xiàn)代化、更便捷地管理 Cookie。

  • 異步操作:基于 Promise,避免傳統(tǒng) document.cookie 同步操作可能導(dǎo)致的性能問題。
  • 類型安全:直接操作 Cookie 對(duì)象(鍵值對(duì)),而非手動(dòng)解析字符串。
  • Service Worker 支持:可在 Service Worker 中讀寫 Cookie,實(shí)現(xiàn)離線場(chǎng)景下的 Cookie 管理。
  • 細(xì)粒度控制:支持設(shè)置 Cookie 的路徑、域名、過期時(shí)間、安全屬性等。
  • 事件監(jiān)聽:可監(jiān)聽 Cookie 的變化(新增、修改、刪除)。

寫入set

自動(dòng)化的檢測(cè),我們?cè)僖膊挥帽凰A?,通過document.cookie明明設(shè)置了對(duì)應(yīng)的cookie,為啥獲取不到呢。讓我們自己掌控我們的定義,設(shè)置的有問題直接拋錯(cuò)。

const zh = await cookieStore.set({
  name: 'zh',
  value: 'llm',
  expires: Date.now() + 24 * 60 * 60 * 1000, // 1天后過期
  domain: 'juejin.cn',
  path: '/',
  secure: true,
  sameSite: 'lax'
});

獲取get, getAll

  • get 通過cookieName獲取某個(gè)指定cookie。 對(duì)于同名的cookie,應(yīng)該會(huì)獲取最后一次添加的。
const zh = await cookieStore.get("zh")
  • getAll 獲取所有非httpOnly, secure的cookie。
const allCookies = await cookieStore.getAll();

刪除delete

對(duì)于同名cookie,也是刪除最后一次添加的。

const delZh = await cookieStore.delete('zh');

change事件

 

因?yàn)?code style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 0.87em; word-break: break-word; border-radius: 2px; overflow-x: auto; background-color: rgb(255, 245, 245); color: rgb(255, 80, 44); padding: 0.065em 0.4em;">CookieStore繼承了EventTarget所以它理所應(yīng)當(dāng)?shù)目梢员O(jiān)聽事件,剛好html5提供了一個(gè)change事件可以監(jiān)聽cookie的變化。

  • event.changed可以拿到所有添加的cookie。
  • event.deleted可以拿到所有刪除的cookie。
cookieStore.addEventListener('change', event => {
  event.changed.forEach(cookie => {
    console.log(`Cookie 被修改: ${cookie.name} = ${cookie.value}`);
  });
  event.deleted.forEach(cookie => {
    console.log(`Cookie 被刪除: ${cookie.name}`);
  });
});

Service worker中使用

該API還可以在Service worker中使用,做一些和cookie相關(guān)的請(qǐng)求設(shè)置,例如用戶偏好設(shè)置等等。感興趣的可以研究研究,不了解Service Worker的使用可以看這個(gè)簡單的demo


該文章在 2025/4/12 10:34:32 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 91精品人妻一区二区蜜桃 | 国产高清无码一区二区久久 | 国产福利在线观看永久视频 | 成人亚洲a片ⅴ一区二区三区动漫 | 国产福利在线观看一区二区 | 91久国产成人在线 | 国产蜜臀视频在线观看 | 国产成人一区二区无码不卡在线 | 国产暴力一区二区三区 | 高清无码小视频 | 国产白丝jk被疯狂输出视频 | 国产精品女av片爽免费观看 | 高潮毛片无 | 国产成人网站免费一区二区 | 国产精品久久久久一区二区三区 | 成人欧美一区二区三区在线视频 | 国产极品人妖在线观看 | 成年女人毛片免费观 | 国产精品成熟老女人视频 | 国产成人日韩欧美 | 福利姬国产精品一区在线 | 国产精品女人呻吟 | 91人妻中文字幕在线精品 | 国产在线无码不卡影视影院 | 精品成人免费一区二区 | 99久久夜色精品国产亚洲96 | 国产免费无码v片在线观看不卡 | 国产欧美高日韩精品久久一区二区 | 丰满白嫩大屁 | 国内精品视这里只有精品 | 国产精品亚洲精品日韩电影 | 国产午夜无码精品免费看浪潮 | 国产成人无码久久久精品一 | 99久久精品国产一区二区 | 国产欧色美视频综合 | 国产紧身裤三级在线视频 | 99久久亚洲综合精品成人 | 国产精品va在线播放 | 成人爱做日本视频免费 | 国产午夜成福利在线观看 | 精品动漫无码一区二区三区 |