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表示第一个主键大于第二个主键,表示第一个主键小于第二个主键。