使用 Cookie 實現 Client 端數據存儲 – 前端工程師必學的 Web Storage 技術(第一篇)

閱讀時間約 4 分鐘

本篇要解決的問題

不是每次要取資料時,都必須調用 API 後才能拿到,因為瀏覽器本身就有提供一些空間可以暫存,我們可以把一些不常更新的資料存在瀏覽器上,調用 API 前就先加個判斷,瀏覽器上有存的話就直接取用,沒有存再去調用,這樣可以減少 API 主機的呼叫次數。
關於瀏覽器上的儲存空間,預計會寫成系列文,項目包含:
主要是實作一個 Demo 出來,也會推薦 August 用過後覺得好用的套件,寫起來更快更方便。
最後完成的 Demo 會在這:
參考資源:

Cookie

  • 限制數量:180 個(Chrome)
  • 限制大小:4KB
  • 限制期限:可設定,未設定則頁籤關閉就會被刪除
把 Cookie 寫在第一篇,是因為我們真的很常會把一些資料存在 Cookie 裡,基本上隨便進一個網站,打開檢查面版看一下,就會看見 Cookie 被塞了資料,比方我們進到 Google 首頁,會看到以下:
進到 Google 首頁 Cookie 就會被存值
參考資源的第二篇,寫到 Cookie 的部份介紹的很好,一般 Cookie 不是什麼都往裡面存,會存的資料都有著特定目的,因為 Cookie 會隨每個 HTTP 請求一起發送。
常見儲存在 Cookie 的資料,比方登入會員後,如果想要讓瀏覽器保留登入狀態,一般就是在 Cookie 裡面存某些加密過的值。
Cookie 有限制,Chrome 的話最多可存 180 個 Cookie,每個 Cookie 的大小限制為 4MB。
那當然,請不要真的用到這麼緊繃,August 曾發生過存了太多的資料到 Cookie,結果頁面打開時直接報 400 Bad Request,就是因為 Cookie 會跟著 HTTP request 出去,變成送出去的資料太多,最後是清掉 Cookie 才解決。
Cookie 用原生寫起來會落落長,這邊推薦一個超好用套件:JavaScript Cookie
CDN 引用或用 import 安裝完後,以下是常用的功能:
// 存 Cookie
Cookies.set('foo', 'bar');
// 存 Cookie + 設定期限
Cookies.set('foo', 'bar', { expires: 7 });
// 存 Cookie + 設期限 + 限網域
Cookies.set('foo', 'bar',
    { expires: 7, domain: '.example.com', path: '/' }
);
// 抓 Cookie 的值
Cookies.get('foo'); // => 'bar'
// 刪 Cookie
Cookies.remove('foo');
// 刪 Cookie,如果存的時候有指定網域時
Cookies.remove('foo',
    { domain: '.example.com', path: '/' }
);

Demo 及原始碼

Demo 及原始碼都放在 GitHub 上了,取用之前麻煩分享本篇或在 GitHub 上按個星星,你的小小動作對本站都是大大的鼓勵。

瀏覽器上的儲存空間系列

avatar-img
9會員
19內容數
沙龍到底是…做什麼用的勒?
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Let's Write 的沙龍 的其他內容
探討如何免費建立自己的網站,結合 WordPress 和 Cloudflare Pages。文章涵蓋從本機安裝 WordPress、產出靜態檔案,到將檔案部署到 Cloudflare Pages 的完整流程,並探討其優點和缺點。
探索如何使用 OneDev 在本機快速架設 Git Server。本文詳細介紹了安裝 OneDev 和 Docker 的步驟,並提供了實用的圖片和說明,幫助你輕鬆在本機建立和管理 Git Server。
探索 Google Sheets API 在 Google Apps Script 上的實用操作和技巧。本文詳細解釋了試算表和工作表的操作、好用函式和原始碼分享,是想要深入了解 Google Sheets API 應用的理想指南。
探索如何在 VS Code 中養一隻療癒的小寵物。本文將指導你安裝和使用 vscode-pets 擴充功能,讓可愛的寵物陪伴你一同寫程式。你可以選擇不同類型和顏色的寵物,甚至改變它們的遊玩場景,為你的編程時光增添樂趣和舒適。
2023 年 3 月第 3 週:OpenAI GPT-4 降臨。微軟推出 Microsoft 365 Copilot,Office AI 助手。FBI 首長:中國可透過 TikTok 控制數據 影響對台論述。IG 業配行情及技巧。
這篇文章教你如何使用 DOM to Image 進行網頁截圖。內容包括如何安裝和使用 DOM to Image,注意事項,以及一個實用的 Demo 和原始碼。文章還探討了 Notion AI 生成的文章,並在最後提供了一個關於生成式 AI 影響的彩蛋。
探討如何免費建立自己的網站,結合 WordPress 和 Cloudflare Pages。文章涵蓋從本機安裝 WordPress、產出靜態檔案,到將檔案部署到 Cloudflare Pages 的完整流程,並探討其優點和缺點。
探索如何使用 OneDev 在本機快速架設 Git Server。本文詳細介紹了安裝 OneDev 和 Docker 的步驟,並提供了實用的圖片和說明,幫助你輕鬆在本機建立和管理 Git Server。
探索 Google Sheets API 在 Google Apps Script 上的實用操作和技巧。本文詳細解釋了試算表和工作表的操作、好用函式和原始碼分享,是想要深入了解 Google Sheets API 應用的理想指南。
探索如何在 VS Code 中養一隻療癒的小寵物。本文將指導你安裝和使用 vscode-pets 擴充功能,讓可愛的寵物陪伴你一同寫程式。你可以選擇不同類型和顏色的寵物,甚至改變它們的遊玩場景,為你的編程時光增添樂趣和舒適。
2023 年 3 月第 3 週:OpenAI GPT-4 降臨。微軟推出 Microsoft 365 Copilot,Office AI 助手。FBI 首長:中國可透過 TikTok 控制數據 影響對台論述。IG 業配行情及技巧。
這篇文章教你如何使用 DOM to Image 進行網頁截圖。內容包括如何安裝和使用 DOM to Image,注意事項,以及一個實用的 Demo 和原始碼。文章還探討了 Notion AI 生成的文章,並在最後提供了一個關於生成式 AI 影響的彩蛋。
你可能也想看
Google News 追蹤
Thumbnail
瀏覽器中三種主要的客戶端儲存方式:Cookie、LocalStorage 和 SessionStorage。
Thumbnail
自2019年起,Google計劃逐步淘汰第三方Cookies,以強化用戶隱私,然而,由於廣告夥伴的反對和監管單位的審查,該計劃被多次延遲,直至近日,Google宣布了重磅消息:第三方Cookies將在Chrome瀏覽器中無限期運作,推翻了先前計劃在2025年淘汰它們的決定。
Thumbnail
今天寫文章來學習什麼是「第一方 Cookies」。 ## 1. Cookie在LinkedIn廣告中的角色 根據Linkedin的文章[1], Cookie 是被設置在網站訪問者的 Web瀏覽器上, 可以幫助 Linkedin 確定廣告被展示給哪些成員, 是衡量廣告效果,改
(1) 收集用戶名單,例如 Email 和手機,未來可做廣告受眾再行銷,例如 FB 廣告、GDN 廣告、Email發送。 (2) 在網站追蹤中,用 GTM 實施「增強型轉換」,讓每一個轉換數據發送時都帶有第一方數據,能讓轉換追蹤更精準,減少受 Cookie 政策的影響。 (3)
Thumbnail
Google於2020年宣佈,計劃在未來3年之內將終止Chrome瀏覽器對第三方Cookie的支援。也就是在2023年將完全淘汰Chrome瀏覽器中的第三方Cookie及跨站追踪識別碼、指紋識別等技術,以保障使用者隱私,以避免干擾網站廣告模式。
Thumbnail
與 cookie 相比,localStorage 與 sessionStorage 的機制相對單純,兩者皆是瀏覽器中的儲存空間,與 cookie 最大的不同在於:localStorage 與 ⋯⋯
Thumbnail
在瀏覽器環境中有許多的儲存空間,想要查看這些空間的話,可以透過「chrome > Dev Tools > Application > Storage」即能進行查看。 瀏覽器內存空間的差異不僅常常被拿來被當作面試考題,在實務開發中更扮演舉足輕重的角色,今天就想透過這系列的文章深度了解這些瀏覽器內存⋯
前言 這篇文章分享cookie、sessionStorage、localStorage、session的差異,因為前後端溝通常用的就這幾個,我比較常用的是cookie或session,但也是有可能會用到sessionStorage或localStorage的時候,因此想說這邊做個紀錄比較他們的差別
Thumbnail
瀏覽器中三種主要的客戶端儲存方式:Cookie、LocalStorage 和 SessionStorage。
Thumbnail
自2019年起,Google計劃逐步淘汰第三方Cookies,以強化用戶隱私,然而,由於廣告夥伴的反對和監管單位的審查,該計劃被多次延遲,直至近日,Google宣布了重磅消息:第三方Cookies將在Chrome瀏覽器中無限期運作,推翻了先前計劃在2025年淘汰它們的決定。
Thumbnail
今天寫文章來學習什麼是「第一方 Cookies」。 ## 1. Cookie在LinkedIn廣告中的角色 根據Linkedin的文章[1], Cookie 是被設置在網站訪問者的 Web瀏覽器上, 可以幫助 Linkedin 確定廣告被展示給哪些成員, 是衡量廣告效果,改
(1) 收集用戶名單,例如 Email 和手機,未來可做廣告受眾再行銷,例如 FB 廣告、GDN 廣告、Email發送。 (2) 在網站追蹤中,用 GTM 實施「增強型轉換」,讓每一個轉換數據發送時都帶有第一方數據,能讓轉換追蹤更精準,減少受 Cookie 政策的影響。 (3)
Thumbnail
Google於2020年宣佈,計劃在未來3年之內將終止Chrome瀏覽器對第三方Cookie的支援。也就是在2023年將完全淘汰Chrome瀏覽器中的第三方Cookie及跨站追踪識別碼、指紋識別等技術,以保障使用者隱私,以避免干擾網站廣告模式。
Thumbnail
與 cookie 相比,localStorage 與 sessionStorage 的機制相對單純,兩者皆是瀏覽器中的儲存空間,與 cookie 最大的不同在於:localStorage 與 ⋯⋯
Thumbnail
在瀏覽器環境中有許多的儲存空間,想要查看這些空間的話,可以透過「chrome > Dev Tools > Application > Storage」即能進行查看。 瀏覽器內存空間的差異不僅常常被拿來被當作面試考題,在實務開發中更扮演舉足輕重的角色,今天就想透過這系列的文章深度了解這些瀏覽器內存⋯
前言 這篇文章分享cookie、sessionStorage、localStorage、session的差異,因為前後端溝通常用的就這幾個,我比較常用的是cookie或session,但也是有可能會用到sessionStorage或localStorage的時候,因此想說這邊做個紀錄比較他們的差別