IDBCursor.direction

 IDBCursor 的方向属性是一个 DOMString ,表示游标遍历的方向, (比如可以通过 IDBObjectStore.openCursor 设置). 查看下文中 Values 章节获取可取值.

语法

cursor.direction;

取值

用一个字符串(defined by the IDBCursorDirection enum) 表示游标的遍历方向。相关取值如下表所示:

Value Description
next 从数据源开始位置遍历
nextunique

 

从数据源开始遍历;当取值有重复时,只获取一次。

prev

从数据源的最后位置位置开取值

prevunique 从数据源的最后位置开始取值,只获取一次。
 

例子

在这个简单的例子中,我们首先创建一个事物对象,返回一个对象仓库(store), 然后使用邮编遍历整个数据仓库。在每次迭代中我们记录了游标的方向,例如prev(倒序遍历)

prev
 

注意:我们不能改变游标的取值,因为这是个只读属性;应该在IDBObjectStore.openCursor方法调用的第二个参数指定游标遍历的方向;

使用游标遍历数据时,可以不需要我们指定在特定字段选择数据;我们可以直接获取所有数据,同时在每次循环迭代过程当中,我们可以通过cursor.value.foo获取数据,如下是一个完整的游标遍历数据的例子; IDBCursor example (view example live.)

function backwards() {
  list.innerHTML = '';
  var transaction = db.transaction(['rushAlbumList'], 'readonly');
  var objectStore = transaction.objectStore('rushAlbumList');

  objectStore.openCursor(null,'prev').onsuccess = function(event) {
    var cursor = event.target.result;
      if(cursor) {
        var listItem = document.createElement('li');
        listItem.innerHTML = '<strong>' + cursor.value.albumTitle + '</strong>, ' + cursor.value.year;
        list.appendChild(listItem);

        console.log(cursor.direction);
        cursor.continue();
      } else {
        console.log('Entries displayed backwards.');
      }
  };
};

Specifications

Specification Status Comment
Indexed Database API 2.0
direction
Recommendation  

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 23webkit (en-US)
24
10 moz (en-US)
16.0 (16.0)
10, partial 15 7.1
Feature Android Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile
Basic support 4.4 22.0 (22.0) 1.0.1 10 22 未实现

 

参考资料