HTML5代码如何管理客户端存储 HTML5代码中IndexedDB的增删改查


IndexedDB通过增删改查操作实现浏览器端大量结构化数据存储。首先打开数据库并创建对象仓库;接着使用事务添加数据;然后可按主键查询或遍历所有数据;支持获取记录后更新字段;还能根据主键删除指定数据,适用于离线应用与大数据处理场景。

html5代码如何管理客户端存储 html5代码中indexeddb的增删改查

HTML5 提供了多种客户端存储方式,其中 IndexedDB 是一种强大且灵活的低级 API,用于在用户浏览器中存储大量结构化数据,包括二进制数据(如图片、文件等)。它适合需要离线功能或处理大量数据的 Web 应用。下面介绍如何使用 IndexedDB 实现增删改查操作。

1. 打开数据库并创建对象仓库

在使用 IndexedDB 之前,必须先打开数据库并定义一个对象仓库(类似表)来存储数据。

const request = indexedDB.open('MyDatabase', 1);
let db;

request.onupgradeneeded = function(event) {
  db = event.target.result;
  // 创建名为 users 的对象仓库,主键为 id
  if (!db.objectStoreNames.contains('users')) {
    db.createObjectStore('users', { keyPath: 'id', autoIncrement: true });
  }
};

request.onsuccess = function(event) {
  db = event.target.result;
};

request.onerror = function(event) {
  console.error('数据库打开失败:', event.target.error);
};
  

2. 添加数据(增)

使用事务将新记录插入到对象仓库中。

function addUser(name, email) {
  const transaction = db.transaction(['users'], 'readwrite');
  const store = transaction.objectStore('users');
  const user = { name, email }; // id 会自动递增

  const addRequest = store.add(user);

  addRequest.onsuccess = function() {
    console.log('用户添加成功,ID:', addRequest.result);
  };

  addRequest.onerror = function() {
    console.error('添加失败:', addRequest.error);
  };
}

// 使用示例
addUser('张三', 'zhangsan@example.com');
  

3. 查询数据(查)

支持按主键查询单条数据,或遍历所有数据。

MarketingBlocks AI MarketingBlocks AI

AI营销助理,快速创建所有的营销物料。

MarketingBlocks AI 27 查看详情 MarketingBlocks AI
// 按 ID 查询单个用户
function getUserById(id) {
  const transaction = db.transaction(['users'], 'readonly');
  const store = transaction.objectStore('users');
  const request = store.get(id);

  request.onsuccess = function() {
    if (request.result) {
      console.log('找到用户:', request.result);
    } else {
      console.log('未找到 ID 为', id, '的用户');
    }
  };
}

// 查询所有用户
function getAllUsers() {
  const transaction = db.transaction(['users'], 'readonly');
  const store = transaction.objectStore('users');
  const request = store.getAll();

  request.onsuccess = function() {
    console.log('所有用户:', request.result);
  };
}

// 使用示例
getUserById(1);
getAllUsers();
  

4. 更新数据(改)

通过主键找到记录并更新其内容。

function updateUser(id, name, email) {
  const transaction = db.transaction(['users'], 'readwrite');
  const store = transaction.objectStore('users');
  const request = store.get(id);

  request.onsuccess = function() {
    const user = request.result;
    if (user) {
      user.name = name;
      user.email = email;
      const updateReq = store.put(user); // 保存更新
      updateReq.onsuccess = () => console.log('更新成功');
    } else {
      console.log('用户不存在');
    }
  };
}

// 使用示例
updateUser(1, '李四', 'lisi@example.com');
  

5. 删除数据(删)

根据主键删除指定记录。

function deleteUser(id) {
  const transaction = db.transaction(['users'], 'readwrite');
  const store = transaction.objectStore('users');
  const request = store.delete(id);

  request.onsuccess = function() {
    console.log('用户删除成功');
  };

  request.onerror = function() {
    console.error('删除失败:', request.error);
  };
}

// 使用示例
deleteUser(1);
  

基本上就这些。IndexedDB 虽然 API 较为复杂,但功能强大,适用于需要持久化存储和高性能查询的场景。掌握它的基本增删改查操作是开发离线 Web 应用的重要一步。

以上就是HTML5代码如何管理客户端存储 HTML5代码中IndexedDB的增删改查的详细内容,更多请关注其它相关文章!


# 是一种  # 爱站seo更新  # 餐饮最好的推广网站  # 丽水营销推广投放平台官网  # 简述网站建设运营费用  # 亚马逊如何营销推广  # 长春网站优化软件  # 湖北seo工具快速入门  # 肇庆定制型网站建设公司  # 深圳西乡整合推广营销  # 网站链接合作推广网站  # 中文网  # 相关文章  # 还能  # html5代码  # 结构化  # 适用于  # 遍历  # 客户端  # 离线  # 主键  # 持久化存储  # 浏览器端  # ai  # 浏览器  # 大数据  # html5  # html 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: win11怎么启用或禁用休眠 Win11 powercfg命令管理休眠文件【技巧】  如何在CSS中使用伪类选择器_hover实现悬停效果  C++如何实现矩阵乘法_C++二维数组矩阵运算代码示例  Win10关闭UAC用户账户控制的方法 Win10降低安全提示等级【技巧】  银信通自动开通原因揭秘  iPhone16Plus参数配置如何调整声音_iPhone16Plus参数配置声音调整详细方法  《大学搜题酱》官网地址登录  电脑没有声音了怎么办 电脑声音问题的全面排查与修复指南【详解】  优化Google Charts Gauge:在数据库无数据时显示默认值  excel怎么计算平均值 excel平均函数*ERAGE使用教学  深入理解J*aScript异步操作:setTimeout与调用栈的真相  顺丰速运官网查询入口 顺丰物流查询官网入口链接  哈尔滨城市通昵称修改方法  C#解析并修改XML后保存 如何确保格式与编码的正确性  微星主板BIOS怎么调整内存时序_内存参数手动优化BIOS设置教程  MySQL多重JOIN技巧:高效关联同一表获取多角色信息  word文档行距怎么调?word文档调行距的操作步骤  有道AI翻译入口 智能写作官方网站入口  iphone16系列配置参数介绍  Linux如何开发轻量级数据服务模块_Linux服务化设计  植物大战僵尸95版游戏版下载_植物大战僵尸95版游戏版安装指南  《崩坏:星穹铁道》3.6版本异相仲裁打法及配队推荐  Composer reinstall命令重装损坏的包  PHP中获取HTTP响应状态消息:方法与限制  mysql导入sql文件能分批导入吗_mysql分批次导入大sql文件的实用技巧  《杖剑传说》食谱大全  C++如何使用CMake构建项目_C++ CMakeLists.txt编写入门教程  192.168.1.1路由器后台入口 192.168.1.1默认登录入口  OPPO A3 WiFi频繁断开怎么办 OPPO A3网络优化技巧  如何快速去除厨房重油污? 2025年最好用的厨房清洁剂推荐  C++如何将字符串转换为大写或小写_C++ transform函数的使用技巧  《随手记》启用语音备注方法  tiktok国际版入口_tiktok官网网页版链接  虫虫助手如何更新游戏  使用TinyButStrong生成HTML并结合Dompdf创建PDF教程  铁路12306怎么申请退票_铁路12306退票申请操作流程  《百果园》充值余额方法  C++中std::thread和std::async的区别_C++并发编程与线程与异步任务比较  CSS如何控制元素外边距_margin实现布局间隔  研招网官方网站招生平台入口_中国研究生招生信息网官网登录  Python中对象引用与链表属性赋值的机制解析  2025SNH48年度青春盛典门票价格及购买方式  Safari浏览器自动填表功能失效怎么办 Safari表单管理修复  Windows 11怎么删除恢复分区_Windows 11使用Diskpart命令强行删除分区  Golang如何使用log记录日志信息_Golang log日志记录方法总结  J*aScript桌面应用_Electron多进程架构实战  Bootstrap 5导航栏折叠功能失效:数据属性迁移指南  163邮箱网页版入口 163邮箱在线使用  实现可重用自定义Python Range类  解决异步Python机器人中同步操作的阻塞问题 

 2025-11-13

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.