IDB区间搜索高级教程剖析及案例精讲
区间搜索
主键查询:搜索主键 大于等于 '主键字段值' 的记录(这里IDB比较的是字段值的ASCII码,这个后面会具体讲)
var records = [];
var tb = db.transaction( '数据表名' ).objectStore( '数据表名' );
range = window.IDBKeyRange.lowerBound( '主键字段值' );
tb.openCursor( range ).onsuccess = function( event ) {
var cursor = event.target.result;
if ( cursor ) {
var record = cursor.value;
records.push( record );
cursor.continue();
}
};
索引查询:搜索索引 大于等于 '索引字段值' 的记录
var records = [];
var tb = db.transaction( self.tbName ).objectStore( self.tbName );
range = window.IDBKeyRange.lowerBound( condition );
var index = tb.index( fieldName + 'Index' );
index.openCursor( range ).onsuccess = function( event ){
var cursor = event.target.result;
if ( cursor ) {
var record = cursor.value;
records.push( record );
cursor.continue();
}
};
总结一下:
1.在区间搜索中,都有搜出多条记录的可能性,所以都使用了游标遍历记录。
2.加粗的代码,道出了主键和索引的用法区别,主键,我们直接通过tb打开游标,而索引先通过tb获取index索引,再通过
其打开游标的。
3.至于区间搜索还有其他API,如对应IDBKeyRange.lowerBound的,还有IDBKeyRange.upperBound,关于对IDBKeyRange和游标相结合的用法将会在第四点“IDB是如何查询数据” 中具体讲。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5080.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
