indexedDB API整理

  • IDBFactory

提供了对数据库的访问。这是由全局对象 indexedDB实现的接口,因而也是该 API 的入口。

属性/方法 描述
indexedDB.open(name, [version]) 请求连接到指定name和version的数据库,如果指定name的数据库不存在,则利用name和version创建一个数据库。
indexedDB.deleteDatabase(name) 请求删除指定name的数据库。
indexedDB.cmp(a, b) 比较两个值的大小。a小于b为-1,a与b相等为0,a大于b为1。
  • IDBCursor

遍历对象存储空间和索引。

属性/方法 描述
cursor.advice(count) 游标向前移动的次数。
cursor.continue(optionalKey) 继续沿着当前游标遍历方向,找到下一个能够匹配key参数的键。如果没有指定参数,则根据游标当前遍历方向,移动到下一个位置。
cursor.delete( ) 返回一个IDBRequest对象。在一个独立线程内删除游标所在位置处的记录(不移动游标),随后将游标设置为null。
cursor.update(newValue) 返回一个IDBRequest对象。在一个独立线程内,使用newValue来更新对象存储内游标当前位置处的值。如果游标指向的记录已被删除,则利用指定的newValue值创建一个新的记录。
cursor.source(只读) 返回游标遍历的IDBObjectStore或IDBIndex。
cursor.direction(只读) 游标遍历的方向。next: 从数据源开始位置遍历。nextunique: 从数据源开始位置开始遍历,当取值又重复时,只获取一次。prev: 从数据源的最后位置开始遍历。prevunique: 从数据源最后位置开始遍历,当取值又重复时,只获取一次。
cursor.key(只读) 返回游标所在位置处记录的键。如果游标超出范围,则返回undefined。
cursor.primaryKey(只读) 返回游标当前位置的主键。如果游标当前正在迭代或超出迭代范围,则设置为undefined。游标的主键可以是任何数据类型。
  • IDBCursorWithValue

遍历对象存储空间和索引并返回游标的当前值。

属性/方法 描述
cursor.value 返回游标当前位置的值。
  • IDBDatabase

表示到数据库的连接。只能通过这个连接来拿到一个数据库事务。

属性/方法 描述
IDBDatabase.close( ) 关闭数据库。
IDBDatabase.createObjectStore(name, [parameters]) 构建一个存储空间。parameters是个可选对象,有以下两个属性:{keyPath: "id"} 设置一个keyPath键,被存储在对象存储空间中的所有对象都必须存在“id”。{autoIncrement: true} 自动生成数字键。
IDBDatabase.deleteObjectStore("toDoList") 删除指定name的数据存储空间。
IDBDatabase.transaction(storeName, [mode]) 立即返回一个IDBTransaction对象,然后在一个独立线程内开启一个事务。第一个参数是事务希望跨越的对象存储空间的列表(storeName为字符串数组,如果你只需要访问一个对象存储空间,可以用一个字符串作为storeName)。如果你希望事务能够跨越所有的对象存储空间你可以传入一个空数组。第二个参数定义了事务的访问类型:readonly(默认)或者readwrite。
IDBDatabase.name (只读) 数据库的名称。
IDBDatabase.version(只读) 数据库的版本号。
IDBDatabase.objectStoreNames(只读) 当前存储在连接的数据库中的对象名称的列表.。
IDBDatabase.onabort = function( ) { ... } 当数据库访问被中止时触发。
IDBDatabase.onerror = function( ) { ... } 访问数据库失败触发。
IDBDatabase.onversionchange = function( ) { ... } 当数据库结构发生变化时触发。
  • IDBEnvironment

提供了到客户端数据库的访问。它由 window 对象实现。

属性/方法 描述
window.indexedDB 为应用程序提供异步访问索引数据库的功能的机制。
  • IDBIndex

提供了到索引元数据的访问。

属性/方法 描述
IDBIndex.count( ) 返回一个IDBRequest对象,并在一个单独的线程内返回范围内键的数目。
IDBIndex.get(key) 返回一个IDBRequest对象,并且在一个单独的线程,返回与键相关联的记录。
IDBIndex.getAll([query], [count])(第二版草案) 返回一个IDBRequest对象,并且在一个单独的线程,返回在索引中的所有对象。
IDBIndex.getKey(key) 返回一个IDBRequest对象,并且在一个单独的线程,返回主键的值。
IDBIndex.getAllKeys([query], [count]) (第二版草案) 立即检索IDBObjectStore内的所有对象的键,设置为result请求的对象。
IDBIndex.openCursor([range], [direction]) 返回一个IDBRequest对象,然后在一个独立线程内,在指定键范围内创建一个游标。
IDBIndex.openKeyCursor()(第二版草案) 返回一个IDBRequest对象,然后在一个独立线程内,在指定键范围内创建一个游标,返回的记录基于索引排序而非主键。
IDBIndex.name(只读) 返回该索引的名称。
IDBIndex.objectStore(只读) 此索引引用对象存储的名称
IDBIndex.keyPath(只读) 返回keyPath的值。
DBIndex.multiEntry(只读) 返回IDBObjectStore.createIndex方法设置的multiEntry属性
IDBIndex.unique(只读) 返回IDBObjectStore.createIndex方法设置的unqie属性
  • IDBKeyRange

定义键的范围。

属性/方法 描述
IDBKeyRange.bound(lower, upper, [lowerOpen], [upperOpen]) 创建并返回一个带有lower和upper界限的键范围。如果lowerOpen或upperOpen为ture,则这个范围不包含界限本身(默认为false)。
IDBKeyRange.includes( ) 返回一个布尔值,指示指定的键是否键范围内。
IDBKeyRange.only( ) 创建一个包含单个值的新的键范围。
IDBKeyRange.lowerBound(lower, [lowerOpen]) 创建一个下限键范围。lowerOpen如果为true,表示范围不包括界限本身。
IDBKeyRange.upperBound(upper, [upperOpen] ) 创建一个新的上限键范围。lowerOpen如果为true,表示范围不包括界限本身。
IDBKeyRange.lower(只读) 返回下限。
IDBKeyRange.upper(只读) 返回上限。
IDBKeyRange.lowerOpen(只读) 如果下限值被包括在键范围,则返回false,否则为true。
IDBKeyRange.upperOpen(只读) 如果上限值被包括在键范围,则返回false,否则为true。
  • *IDBObjectStore *

表示一个对象存储空间。

属性/方法 描述
IDBObjectStore.add(value, [key]) 新增存储对象。(第2个可选参数用来指定相关的key,但是试验几次均不成功,不知道怎么设置,也不知道是什么一个效果。若不指定则为null。貌似不知道也不影响使用,不过若有懂的还望告知!)
IDBObjectStore.clear( ) 创建并立即返回一个IDBRequest对象,并在一个单独的线程清除该对象存储。该方法会清除掉存储索引中的所有记录,若只想要删除某项数据可以使用IDBObjectStore.delete()或者设置IDBKeyRange。
IDBObjectStore.get(key) 返回一个IDBRequest对象,并在一个单独的线程,返回指定键所对应的存储空间。
IDBObjectStore.delete(keyorKeyRange) 返回一个IDBRequest对象,并且在一个单独的线程删除指定的记录。
IDBObjectStore.getKey(key)(第二版草案) 返回一个IDBRequest对象,并且在一个单独的线程,返回指定的查询中选择的键。
IDBObjectStore.getAll([query], [count]) 返回一个IDBRequest包含在对象存储的所有对象指定的参数或在商店中的所有对象的匹配,如果没有给定参数的对象。
IDBObjectStore.getAllKeys([query], [count])(第二版草案) 立即检索IDBObjectStore内的所有对象的键,设置为result请求的对象。
IDBObjectStore.createIndex(name, keyPath, [parameters]) 利用指定的name和keyPath参数,创建并返回一个新的IDBIndex对象。该方法只能在versionChange事务模式回调中调用。[parameters]:unique: 如果为true,键的值不能重复。multiEntry: 若为true,当keyPath解析为数组时,每个数组元素都会被添加为索引。若为false,索引就只是一个包含多个元素的数组。
IDBObjectStore.deleteIndex(indexName) 删除一个索引项。该方法只能在versionChange事务模式回调中调用。
IDBObjectStore.index(indexName) 返回对象索引中名为indexName的索引。
IDBObjectStore.put(value, [key]) 返回IDBRequest对象。更新和插入对象。
IDBObjectStore.openCursor([range], [direction]) 返回IDBRequest对象。然后在一个独立的线程内,在对象存储的记录上创建一个游标。
IDBObjectStore.openKeyCursor([range], [direction]) 返回一个IDBRequest对象,其结果将被设置为IDBCursor可用于通过匹配结果进行迭代。
IDBObjectStore.count(range) 返回一个IDBRequest对象,并且在一个单独的线程,返回匹配提供的key或者range的记录的总数。如果没有提供参数,它将返回记录的总数。
IDBObjectStore.indexNames(只读) 返回存储空间上的索引名。
IDBObjectStore.keyPath(只读) 返回存储空间上的keyPath。
IDBObjectStore.name 返回该存储空间的名称。
IDBObjectStore.transaction(只读) 返回一个IDBTransaction对象。返回此对象存储所属的事务对象。
IDBObjectStore.autoIncrement(只读) 返回autoIncrement在对象上存储的值。
  • *IDBOpenDBRequest *

表示一个打开数据库的请求。

属性/方法 描述
IDBOpenDBRequest.onblocked = function ( ) { ... } upgradeneeded事件因为一个版本的变化被触发,但数据库仍然在使用时触发该事件。
IDBOpenDBRequest.onupgradeneeded = function ( ) { ... } 在版本发生变动时会触发upgradeneeded事件。在这里面,我们可以创建和删除对象存储空间以及构建和删除索引。
  • IDBRequest

提供了到数据库异步请求结果和数据库的访问。这也是在你调用一个异步方法时所得到的。

属性/方法 描述
IDBRequest.result(只读) 返回请求的结果。
IDBRequest.error(只读) 在请求不成功的情况下返回错误。
IDBRequest.source(只读) 返回索引或对象存储的来源。
IDBRequest.transaction(只读) 返回此对象存储所属的事务对象。
IDBRequest.readyState(只读) 返回请求的状态。pending: 该请求被挂起。done: 请求已经完成。
IDBRequest.onerror = function ( ) { ... } 处理程序错误事件。
IDBRequest.onsuccess = function ( ) { ... } 处理程序成功事件。
  • IDBTransaction

表示一个事务。你在数据库上创建一个事务,指定它的范围(例如你希望访问哪一个对象存储空间),并确定你希望的访问类型(只读或写入)。

属性/方法 描述
IDBTransaction.abort 放弃本次连接的transaction的所有修改,如果当前的transaction处于回滚完毕或完成状态,则会抛出一个错误事件。
IDBTransaction.objectStore(name) 获取对象存储空间。
IDBTransaction.db(只读) 返回与此事务对象相关联的数据库连接。
IDBTransaction.mode(只读) 返回数据模式。readonly/readwrite/versionChange
IDBTransaction.error 返回一个错误。
IDBTransaction.onabort = function() { ... } 中止事件。
IDBTransaction.oncomplete = function() { ... }; IDBTransaction接口处理完成时触发。
IDBTransaction.onerror = function() { ... }; IDBTransaction接口处理错误事件。
  • IDBVersionChangeEvent

表明数据库的版本号已经改变。

属性/方法 描述
IDBVersionChangeEvent.oldVersion 返回数据库的旧版本号。
IDBVersionChangeEvent.newVersion 返回数据库的新版本号。

渣渣英语水平,开了3个翻译工具,花了几天时间总算整理完成。能力有限,可能有一些错漏。若有不足,望请指正!

你可能感兴趣的:(indexedDB API整理)