当前位置:首页 > JavaScript

js实现storage

2026-01-31 17:01:13JavaScript

使用 localStorage 实现数据存储

localStorage 是浏览器提供的持久化存储方案,适合存储键值对形式的数据,关闭浏览器后数据仍保留。

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

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

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

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

使用 sessionStorage 实现会话存储

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

js实现storage

// 存储数据
sessionStorage.setItem('sessionKey', 'sessionValue');

// 读取数据
const sessionValue = sessionStorage.getItem('sessionKey');

使用 IndexedDB 实现复杂数据存储

对于需要存储大量结构化数据的场景,IndexedDB 提供了更强大的解决方案。

js实现storage

// 打开或创建数据库
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: 'Item 1' });

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

使用 Cookies 实现小数据存储

Cookies 适合存储少量数据,每次HTTP请求都会自动发送到服务器。

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

// 读取cookie
function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(';').shift();
}

使用现代浏览器 Cache API

Cache API 允许对请求/响应对象进行缓存,适合存储网络资源。

// 打开缓存
caches.open('my-cache').then(cache => {
  // 添加资源到缓存
  cache.add('/api/data');

  // 匹配缓存中的资源
  cache.match('/api/data').then(response => {
    if (response) {
      console.log('Found in cache');
    }
  });
});

注意事项

  • localStorage 和 sessionStorage 有存储限制(通常5MB)
  • 敏感数据不应存储在客户端
  • IndexedDB 操作是异步的,需要处理回调或使用 Promise
  • 跨域情况下 cookie 访问受限
  • 清除浏览器数据会删除所有存储内容

标签: jsstorage
分享给朋友:

相关文章

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js 实现递归

js 实现递归

递归的基本概念 递归是指函数直接或间接调用自身的过程。在JavaScript中,递归通常用于解决可以分解为相似子问题的问题,如阶乘、斐波那契数列、树形结构遍历等。 递归的实现要点 基线条件(Base…