indexedDB.open()
方法用于打开数据库。这是一个异步操作,但是会立刻返回一个 IDBOpenDBRequest 对象。
上面代码表示,打开一个名为test
、版本为1
的数据库。如果该数据库不存在,则会新建该数据库。
open()
方法的第一个参数是数据库名称,格式为字符串,不可省略;第二个参数是数据库版本,是一个大于0
的正整数(0
将报错),如果该参数大于当前版本,会触发数据库升级。第二个参数可省略,如果数据库已存在,将打开当前版本的数据库;如果数据库不存在,将创建该版本的数据库,默认版本为1
。
- success:打开成功。
- error:打开失败。
- blocked:上一次的数据库连接还未关闭。
第一次打开数据库时,会先触发事件,然后触发success
事件。
根据不同的需要,对上面4种事件监听函数。
上面代码有两个地方需要注意。首先,open()
方法返回的是一个对象(IDBOpenDBRequest),监听函数就定义在这个对象上面。其次,success
事件发生后,从openRequest.result
属性可以拿到已经打开的IndexedDB
数据库对象。
success
:删除成功
调用deleteDatabase()
方法以后,当前数据库的其他已经打开的连接都会接收到versionchange
事件。
注意,删除不存在的数据库并不会报错。
indexedDB.cmp()
方法比较两个值是否为 indexedDB 的相同的主键。它返回一个整数,表示比较的结果:0
表示相同,1
表示第一个主键大于第二个主键,表示第一个主键小于第二个主键。