当前位置:首页 > JavaScript

js实现数据存储

2026-03-01 13:31:43JavaScript

使用 localStorage 存储数据

localStorage 提供了一种在浏览器中持久化存储键值对的方式,数据不会随页面刷新或关闭而丢失。

// 存储数据
localStorage.setItem('key', 'value');

// 读取数据
const value = localStorage.getItem('key');

// 删除数据
localStorage.removeItem('key');

// 清空所有数据
localStorage.clear();

使用 sessionStorage 存储临时数据

sessionStorage 与 localStorage 类似,但数据仅在当前会话期间有效,关闭浏览器标签页后数据会被清除。

js实现数据存储

// 存储数据
sessionStorage.setItem('key', 'value');

// 读取数据
const value = sessionStorage.getItem('key');

// 删除数据
sessionStorage.removeItem('key');

使用 IndexedDB 存储复杂数据

IndexedDB 是一个低级 API,适合存储大量结构化数据(如对象、数组等)。

// 打开或创建数据库
const request = indexedDB.open('myDatabase', 1);

request.onupgradeneeded = (event) => {
  const db = event.target.result;
  const store = db.createObjectStore('myStore', { keyPath: 'id' });
};

request.onsuccess = (event) => {
  const db = event.target.result;
  const transaction = db.transaction('myStore', 'readwrite');
  const store = transaction.objectStore('myStore');

  // 添加数据
  store.add({ id: 1, name: 'John' });

  // 读取数据
  const getRequest = store.get(1);
  getRequest.onsuccess = () => {
    console.log(getRequest.result);
  };
};

使用 Cookies 存储小规模数据

Cookies 适合存储少量数据(如用户偏好设置),但容量有限(约 4KB)。

js实现数据存储

// 设置 Cookie
document.cookie = 'key=value; expires=Fri, 31 Dec 2023 23:59:59 GMT; path=/';

// 读取 Cookie
const cookies = document.cookie.split(';').reduce((acc, cookie) => {
  const [key, value] = cookie.trim().split('=');
  acc[key] = value;
  return acc;
}, {});

// 删除 Cookie
document.cookie = 'key=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/';

使用 Web SQL(已废弃)

Web SQL 是旧版浏览器支持的 SQL 数据库,但已被 IndexedDB 取代。

const db = openDatabase('myDB', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction((tx) => {
  tx.executeSql('CREATE TABLE IF NOT EXISTS logs (id unique, log)');
  tx.executeSql('INSERT INTO logs (id, log) VALUES (1, "Hello")');
});

使用第三方库(如 PouchDB)

PouchDB 是一个基于 IndexedDB 的封装库,支持离线数据同步。

const db = new PouchDB('myDB');
db.put({ _id: '1', name: 'Alice' })
  .then(() => db.get('1'))
  .then(doc => console.log(doc));

标签: 数据存储js
分享给朋友:

相关文章

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…