批量存储到IDB中的分析总结及案例精讲
批量存储到IDB中
var save = function ( blobs ) {
var transaction
,photoURLs = indexedDB_Config.photoURLs;
transaction = db.transaction( [ tbName ], window.IDBTransaction.READ_WRITE );
var tb = transaction.objectStore( self.tbName );
for( var i = 0; i < photoURLs.length; i++ ){
var photoURL = photoURLs[i];
tb.add( blobs[photoURL], photoURL );
}
console.log( '保存完畢' );
}
getPhotos( save );
以上为伪代码,主要将思路表达出来,好像db,tbName,都应该在打开数据库操作的时候,给db,tbName变量赋值好,如window.IDBTransaction.READ_WRITE,也应该使用跨浏览的IDB对象。对IDB的代码组织上,应该整合成一个类的形式。
总结一下,其实在存储图片的过程中,大概有这四个关键点,
1.打开数据库
2.成功打开数据库之后,回调getPhotos
3.在获取完所有图片之后,回调save
4.save完成之后,还可以设置回调,执行你想要执行的操作,如从IDB中把刚存储的图片读出来。
在这些点可以看出IDB回调为什么会特别多的缘故,几乎每一步都是异步进行的,想进入下一步,你得回调,所以这是IDB的特点也是难点。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5091.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
