3.1 打开数据库

使用 IndexedDB 的第一步是打开数据库,使用indexedDB.open()方法。

  1. var request = window.indexedDB.open(databaseName, version);

这个方法接受两个参数,第一个参数是字符串,表示数据库的名字。如果指定的数据库不存在,就会新建数据库。第二个参数是整数,表示数据库的版本。如果省略,打开已有数据库时,默认为当前版本;新建数据库时,默认为1

indexedDB.open()方法返回一个 IDBRequest 对象。这个对象通过三种事件errorsuccessupgradeneeded,处理打开数据库的操作结果。

(1)error 事件

error事件表示打开数据库失败。

  1. request.onerror = function (event) {
  2. console.log('数据库打开报错');
  3. };

(2)success 事件

success事件表示成功打开数据库。

  1. var db;
  2. request.onsuccess = function (event) {
  3. db = request.result;
  4. console.log('数据库打开成功');
  5. };

这时,通过request对象的result属性拿到数据库对象。

(3)upgradeneeded 事件

如果指定的版本号,大于数据库的实际版本号,就会发生数据库升级事件upgradeneeded

  1. var db;
  2. request.onupgradeneeded = function (event) {
  3. db = event.target.result;
  4. }

这时通过事件对象的target.result属性,拿到数据库实例。