我想对象添加到IndexedDB的一些表中的一个交易:优化的批量(组块)物件上传到IndexedDB的
_that.bulkSet = function(data, key) {
var transaction = _db.transaction([_tblName], "readwrite"),
store = transaction.objectStore(_tblName),
ii = 0;
_bulkKWVals.push(data);
_bulkKWKeys.push(key);
if (_bulkKWVals.length == 3000) {
insertNext();
}
function insertNext() {
if (ii < _bulkKWVals.length) {
store.add(_bulkKWVals[ii], _bulkKWKeys[ii]).onsuccess = insertNext;
++ii;
} else {
console.log(_bulkKWVals.length);
}
}
};
看起来,它工作正常,但它是不是很优化做的方式特别是如果对象的数量非常高(〜50.000-500.000)。我怎么可能优化它?理想情况下,我想添加第一个3000,然后从阵列中删除它,然后添加另一个3000,即分块。有任何想法吗?
我也做了一些基准测试,在1000个事务中插入了1000个,并猜测:[创建trasaction +获取存储] = 20秒,[inserts] = 10秒...第一个问题严重错误 – lisak
@buley,你有网站吗? – MB34