当前位置:首页 > JavaScript

js怎么实现数据储存

2026-04-04 17:58:38JavaScript

本地存储(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');

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

Cookie

Cookie 是一种传统的客户端存储方式,可以设置过期时间,但存储容量较小(约4KB)。

// 设置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=/';

IndexedDB

IndexedDB 是一个浏览器内置的数据库,适合存储大量结构化数据,支持事务和索引。

js怎么实现数据储存

// 打开数据库
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);
  };
};

Web SQL

Web SQL 是一种基于 SQL 的数据库存储方案,但已被废弃,不建议在新项目中使用。

const db = openDatabase('myDB', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction((tx) => {
  tx.executeSql('CREATE TABLE IF NOT EXISTS myTable (id unique, name)');
  tx.executeSql('INSERT INTO myTable (id, name) VALUES (1, "John")');
  tx.executeSql('SELECT * FROM myTable', [], (tx, results) => {
    console.log(results.rows);
  });
});

文件存储(File API)

File API 允许通过 JavaScript 访问用户本地文件,适合处理文件上传和读取。

const input = document.createElement('input');
input.type = 'file';

input.onchange = (e) => {
  const file = e.target.files[0];
  const reader = new FileReader();

  reader.onload = (event) => {
    console.log(event.target.result);
  };

  reader.readAsText(file);
};

document.body.appendChild(input);

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

相关文章

Vue数据依赖实现

Vue数据依赖实现

Vue数据依赖实现原理 Vue的数据依赖实现基于响应式系统,核心是通过Object.defineProperty或Proxy拦截数据变化,结合发布-订阅模式实现依赖收集和更新触发。 核心机制 依赖收…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

vue实现数据展示

vue实现数据展示

Vue 数据展示的实现方法 在 Vue 中展示数据通常通过数据绑定、指令和组件等方式实现。以下是几种常见的实现方式: 数据绑定与插值表达式 使用双大括号语法 {{ }} 可以直接在模板中展示数据:…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…