JavaScript Storage管理技巧:如何利用瀏覽器本地存儲?

JavaScript中,我們可以使用瀏覽器的本地存儲來保存數據。這對於提升用戶體驗和服務端性能有非常大的作用。本文將探討JavaScript中的本地存儲技巧。

一、localStorage和sessionStorage

在瀏覽器端,localStorage 和 sessionStorage 是兩個非常常用的本地存儲方式。它們都可以獨立存儲至少5MB的數據,並支持增刪改查操作。

//localStorage的使用方法
localStorage.setItem('name', 'John');
console.log(localStorage.getItem('name')); //John
localStorage.removeItem('name');

//sessionStorage的使用方法
sessionStorage.setItem('name', 'John');
console.log(sessionStorage.getItem('name')); //John
sessionStorage.removeItem('name');

這裡需要注意的是,localStorage與sessionStorage之間的區別在於後者的存儲內容僅限於用戶會話(session)期間,當用戶關閉瀏覽器窗口後,存儲的數據將被清除。

二、cookie

除了localStorage和sessionStorage,JavaScript還有一種常用的本地存儲方式是cookie。cookie是一小段文本信息,存儲在瀏覽器端,以便下次訪問時讀取信息。cookie具有以下特點:

  • 每個cookie的最大大小約為4kb。
  • 每個域名下最多可以存儲20個cookie。
  • cookie可以設置過期時間。
  • cookie可以被JS直接讀取。
//設置cookie
document.cookie = "username=John; expires=Tue, 19 Jan 2038 03:14:07 UTC; path=/"

//讀取cookie
function getCookie(cname) {
  const name = cname + "=";
  const ca = document.cookie.split(';');
  for(let i = 0; i < ca.length; i++) {
    let c = ca[i];
    while(c.charAt(0) === ' ') {
      c = c.substring(1);
    }
    if(c.indexOf(name) === 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

//刪除cookie
function deleteCookie(cname) {
  document.cookie = `${cname}=''; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/`
}

三、IndexDB

如果需要存儲更多數據,我們可以使用IndexDB。IndexDB是一種以對象存儲為基礎的高級本地存儲技術,可以存儲大量結構化數據,支持離線訪問。

//打開數據庫
const request = window.indexedDB.open('myDB', 1)
let db
request.onerror = function(event) {
  console.error('Database error: ' + event.target.errorCode);
};
request.onsuccess = function(event) {
  db = event.target.result;
};

//創建對象倉庫
const objectStore = db.createObjectStore('users', { keyPath: 'id' });

//添加數據
const tx = db.transaction(['users'], 'readwrite');
const store = tx.objectStore('users');
const user1 = { id: 1, name: 'John', age: 28 };
store.add(user1);

//查詢數據
const tx = db.transaction(['users'], 'readonly');
const store = tx.objectStore('users');
const request = store.get(1);
request.onsuccess = function() {
  console.log(request.result);
};

//更新數據
const tx = db.transaction(['users'], 'readwrite');
const store = tx.objectStore('users');
const request = store.get(1);
request.onsuccess = function() {
  const data = request.result;
  data.age++;
  store.put(data);
};

//刪除數據
const tx = db.transaction(['users'], 'readwrite');
const store = tx.objectStore('users');
store.delete(1);

四、總結

本文介紹了JavaScript在本地存儲方面的幾種方式:localStorage和sessionStorage,cookie和IndexDB。每種本地存儲技術都有其適用的場景,需要視具體情況而定。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/192230.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-01 09:56
下一篇 2024-12-01 09:56

相關推薦

  • 使用vscode建立UML圖的實踐和技巧

    本文將重點介紹在使用vscode在軟件開發中如何建立UML圖,並且給出操作交互和技巧的指導。 一、概述 在軟件開發中,UML圖是必不可少的重要工具之一。它為軟件架構和各種設計模式的…

    編程 2025-04-29
  • 如何解決web瀏覽器雙擊事件時差

    本文將從以下幾個方面對web瀏覽器雙擊事件時差進行詳細闡述,並提供解決方法。 一、雙擊事件延時設置 1、問題描述:在web瀏覽器中,雙擊事件默認會延時一定的時間才能觸發該事件,這個…

    編程 2025-04-29
  • 優秀周記1000字的撰寫思路與技巧

    優秀周記是每個編程開發工程師記錄自己工作生活的最佳方式之一。本篇文章將從周記的重要性、撰寫思路、撰寫技巧以及周記的示例代碼等角度進行闡述。 一、周記的重要性 作為一名編程開發工程師…

    編程 2025-04-28
  • 使用Python模擬手機瀏覽器的方法

    解答如何使用Python模擬手機瀏覽器,並且給出示例代碼。 一、安裝Selenium庫 使用Python模擬手機瀏覽器需要使用Selenium庫。 首先,使用pip命令進行安裝: …

    編程 2025-04-28
  • 谷歌瀏覽器窗口大小調整

    谷歌瀏覽器是當今最流行的網絡瀏覽器之一,它的窗口大小調整是用戶操作其中的一個重要部分。本文將從多個方面對谷歌瀏覽器窗口大小調整做詳細的闡述。 一、窗口大小調整的基礎操作 谷歌瀏覽器…

    編程 2025-04-28
  • 如何在電腦上下載安裝谷歌瀏覽器?

    想要在電腦上使用谷歌瀏覽器,我們需要先進行下載和安裝。下面,本文將從多個方面詳細闡述如何在電腦上下載安裝谷歌瀏覽器。 一、到谷歌瀏覽器官方網站下載 谷歌瀏覽器官方網站是我們下載谷歌…

    編程 2025-04-28
  • 使用JavaScript日期函數掌握時間

    在本文中,我們將深入探討JavaScript日期函數,並且從多個視角介紹其應用方法和重要性。 一、日期的基本表示與獲取 在JavaScript中,使用Date對象來表示日期和時間,…

    編程 2025-04-28
  • JavaScript中使用new Date轉換為YYYYMMDD格式

    在JavaScript中,我們通常會使用Date對象來表示日期和時間。當我們需要在網站上顯示日期時,很多情況下需要將Date對象轉換成YYYYMMDD格式的字符串。下面我們來詳細了…

    編程 2025-04-27
  • 堆疊圖配色技巧分享

    堆疊圖是數據可視化中常用的一種表現形式,而配色則是影響堆疊圖觀感和傳達信息的重要因素之一。本文將分享一些堆疊圖配色的技巧,幫助你創造更好的數據可視化。 一、色彩搭配原則 色彩是我們…

    編程 2025-04-27
  • 使用uring_cmd提高開發效率的技巧

    對於編程開發工程師來說,提高效率一直是致力追求的目標。本文將深度解析如何使用uring_cmd,提升工作效率。 一、常用命令 uring_cmd是一個非常強大的命令行工具,但是大部…

    編程 2025-04-27

發表回復

登錄後才能評論