关于IndexedDB的操作文档
创始人
2025-06-01 07:53:00
0

IndexedDB是一种客户端NoSQL数据库,它可以在JavaScript中使用键值对存储和检索数据。

## 创建数据库和存储对象 在使用IndexedDB之前,需要先创建一个数据库和一个存储对象。

可以使用下面的方法来创建:

var request = window.indexedDB.open('mydb', 1); //创建数据库request.onerror = function(event) {console.log('Database error: ' + event.target.errorCode); //发生错误};request.onupgradeneeded = function(event) {var db = event.target.result;var objectStore = db.createObjectStore('users', { keyPath: 'id' }); //创建存储对象};request.onsuccess = function(event) { var db = event.target.result; };

在这个示例中,我们使用indexedDB.open方法创建了名为mydb的数据库。

在数据库版本号为1的情况下,我们在onupgradeneeded事件中使用createObjectStore方法创建了名为users的存储对象,并使用id字段作为主键。

## 添加数据 可以使用以下方法向存储对象中添加数据:

var transaction = db.transaction(['users'], 'readwrite'); //开启事务var objectStore = transaction.objectStore('users'); //指定操作存储对象var request = objectStore.add({ id: 1, name: 'Tom', age: 25 }); //添加数据request.onsuccess = function(event) { console.log('Data added.'); };request.onerror = function(event) { console.log('Data not added: ' + event.target.errorCode); };


在这个示例中,我们使用add方法将一条包含id、name和age字段的数据添加到名为users的存储对象中。

## 更新数据 可以使用以下方法来更新存储对象中的数据:


 

var transaction = db.transaction(['users'], 'readwrite'); //开启事务var objectStore = transaction.objectStore('users'); //指定操作存储对象var request = objectStore.put({ id: 1, name: 'Tom', age: 30 }); //更新数据request.onsuccess = function(event) { console.log('Data updated.'); };request.onerror = function(event) { console.log('Data not updated: ' + event.target.errorCode); }; 

在这个示例中,我们使用put方法将一条包含id、name和age字段的数据更新到名为users的存储对象中。

## 删除数据 可以使用以下方法来从存储对象中删除数据:

var transaction = db.transaction(['users'], 'readwrite'); //开启事务var objectStore = transaction.objectStore('users'); //指定操作存储对象var request = objectStore.delete(1); //删除数据request.onsuccess = function(event) { console.log('Data deleted.'); };request.onerror = function(event) { console.log('Data not deleted: ' + event.target.errorCode); };


在这个示例中,我们使用delete方法从名为users的存储对象中删除了id为1的数据。

## 查询数据 可以使用以下方法从存储对象中查询数据:

var transaction = db.transaction(['users'], 'readonly'); //开启只读事务var objectStore = transaction.objectStore('users'); //指定操作存储对象var request = objectStore.get(1); //查询数据request.onsuccess = function(event) {var data = event.target.result;if (data) { console.log(data.id + ' ' + data.name + ' ' + data.age); } };
request.onerror = function(event) { console.log('Data not found: ' + event.target.errorCode); };

在这个示例中,我们使用get方法从名为users的存储对象中查询了id为1的数据,并输出了查询结果。 以上就是IndexedDB的基本操作。需要注意的是,IndexedDB是一种较新的技术,可能不兼容一些旧的浏览器,需要进行兼容性检查。

相关内容

热门资讯

今天,我们讨论“奇迹” 谁是结构分化期的“市场奇迹”? 2025年成都楼市结构性分化的浪潮中,东城金茂晓棠作为城市更新核心首...
18539名员工过年每人获1克... 12月28日,追觅科技创始人兼CEO俞浩在公司内部群宣布,今年年终奖每位员工额外发放1克黄金。 值...
上市40个月,市值蒸发超95%... 来源:界面新闻 界面新闻记者 | 张蕊 界面新闻编辑 | 任雪松 洪九果品的资本之旅,在开启...
年终情结淡化 大盘震荡上行 桂浩明 每到年底,股市走势往往会比较犹豫。这主要与投资者此时心态比较纠结有关。经过差不多一整年的交易...
小米联创林斌抛巨额减持计划:总... 小米联合创始人林斌再次计划减持。 12月28日,小米(1810.HK)公告称,获公司联合创始人、执行...
农业银行执行董事刘洪任职资格获... 观点网讯:12月28日,中国农业银行股份有限公司(以下简称“农业银行”)发布公告,宣布了2025年度...
这一拉美央行发起“去美元化”攻... 财联社12月27日讯(编辑 牛占林)乌拉圭央行行长正试图说服储户放弃对美元的长期依赖,强调这一习惯不...
原创 黄... 金价飙升至4497美元,让婚戒成为奢侈品,金店的价签频繁变动令人焦虑,人们担忧年后是否还能负担得起。...
顶俏商业模式:撬动会员裂变,助... 一、解决方案应用场景 这是一套适用于社交电商、会员制分销、线下门店自提核销的综合性新零售系统。核心...
邮储银行行长刘建军退休 姚红代... 观点网讯:12月28日,中国邮政储蓄银行股份有限公司(简称“邮储银行”)发布公告,收到刘建军先生的辞...
原创 金... 在2025年末,一场史诗般的黄金风暴席卷全球金融市场。从12月22日到25日,短短72小时内,国际金...
吕文扬新加坡企业家,链接全球商... 依托新加坡优越的商业环境,吕文扬新加坡企业家以国际化视野和创新思维,在东南亚市场开辟出广阔天地。作为...
兴趣电商激活非遗产业,算法刺激... 小众商品借助抖音电商的算法推荐,精准触达消费者。 近年来,随着大众对“匠人精神”与“耐用主义”的崇尚...
小米突发!刚刚公告,大举减持! 小米突发公告。 12月28日晚间,小米集团发布公告称,公司联合创始人、执行董事、副董事长林斌计划自2...
再现“亏损式”内幕交易,赵瑜停... 红星资本局12月27日消息,12月26日,中国证券监督管理委员会安徽监管局连发三份行政处罚决定书,对...
原创 海... 最近一次前往海南岛,海口美兰机场免税店前人头攒动,一位导购员透露,随着海南封关政策的逐步实施,多达六...
ST复华多年年报虚假 公司及董... ST复华(600624)今日晚间公告,公司及董事长宋正于12月26日分别收到中国证监会上海监管局出具...
政策组合拳提振投资情绪 红利类... 近期监管层联合打出的政策组合拳,为A股市场带来久违的修复行情,尤其是此前持续回调的红利板块,受益政策...
林斌拟减持小米股权:最高套现2... 雷递网 乐天 12月28日 小米今日发布公告称,董事会获公司联合创始人、执行董事、副董事长林斌通知,...
一家跨境直营小店的“出海账” 12月25日,在山东好多宝供应链有限公司展厅,耿延周(左)向记者介绍产品和商业模式。(□通讯员徐明报...