码迷,mamicode.com
首页 > 数据库 > 详细

关于HTML5 存储中indexedDB的一些问题

时间:2015-03-12 20:32:41      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

IndexedDB 是一种可以让你在用户的浏览器内持久化存储数据的方法。IndexedDB 为生成 Web Application 提供了丰富的查询能力,使我们的应用在在线和离线时都可以正常工作。

 

IndexedDB是一个比较新的存储方案,作为代替WebSQL出现的,可以再客户端想数据库那样存储数据。具体的支持情况可以查看Can I Use。可以看到支持情况并不怎么好。

具体的使用方法可以参考以下文章或视频:

下面是我在学习中遇到的一些问题。

1. 如果你正在使用《JavaScript高级程序设计(第三版)》

书里的讲解有一些过时,比如设置indexedDB的版本号,书里是这样给出的:

request = database.setVersion("1.0");

而setVersion方法已经废弃了,具体参见:
Issue 161114:IndexedDB: replacing setVersion with new “upgradeneeded” API

现在以 onupgradeneeded 事件代替。

2. IndexedDB提供的是异步的API

也就是说,每一次操作都需要在 success 和 error 执行相应操作老检测是否运行成功。

3. 数据库的结构只能在onupgradeneeded事件更改

我们这样打开一个数据库:

request = indexedDB.open(‘zjzhome‘);

会触发三个事件, upgradeneeded 、 success 和 error ,若果想改变数据库结构只能在 upgradeneeded 事件中操作,而不是在 success 事件中。

4. 增删改查都在事务中完成

var transaction = db.transaction([tableName], ‘readwrite‘); //事务
var objectStore = transaction.objectStore(tableName); //得到表的objectStore对象
//增删改查都借助这个objectStor对象
//add, put, delete, cursor

 

以上是我在学习中遇到的一些问题,以及解决方案。不定时更新。

关于HTML5 存储中indexedDB的一些问题

标签:

原文地址:http://www.cnblogs.com/zjzhome/p/4333300.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!