当前位置:首页 > JavaScript

js实现storage

2026-04-05 09:13:13JavaScript

使用 localStorage 实现本地存储

localStorage 允许在浏览器中存储键值对数据,数据不会过期,除非手动清除

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

// 获取数据
const data = localStorage.getItem('key');

// 移除单个数据
localStorage.removeItem('key');

// 清空所有存储
localStorage.clear();

使用 sessionStorage 实现会话存储

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

js实现storage

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

// 获取数据
const sessionData = 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('customers', {keyPath: 'id'});
  store.createIndex('name', 'name', {unique: false});
};

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

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

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

使用 Cookies 实现小数据存储

Cookies 适合存储少量数据,可设置过期时间

// 设置cookie
document.cookie = 'username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/';

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

使用 Web SQL 实现关系型存储(已废弃)

虽然 Web SQL 已被废弃,但在某些旧浏览器中仍可使用

// 创建数据库
const db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

// 执行SQL
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
  tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "first log")');
});

存储安全注意事项

存储敏感数据时应考虑加密处理 避免存储过大数据影响性能 清除不再需要的存储数据释放空间 同源策略限制下,存储数据仅对创建它们的域名可用

标签: jsstorage
分享给朋友:

相关文章

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js如何实现继承

js如何实现继承

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

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现百叶窗

js实现百叶窗

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

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…