我在iOS中使用Phonegap(Cordova)和“Good dynamics”。 我们有一个包含15列的表,需要一次根据条件插入超过10000到200000条记录。
但在测试超过2000个记录插入时,我的应用程序在iPAD中崩溃了。
我尝试了两种不同的批量插入,如下面的链接
Stack overflow answer(使用UNION ALL和COMMA分离的INSERTS)
我也尝试了两种选择:
1)为每个插入打开一个事务。
2)使用for循环在单个事务中多次插入。
在iOS模拟器中测试时,当插入超过5000k的记录时,两者都占用超过1GB的内存(我怀疑这会导致问题)。
当表格中有更多列而没有 IOS + SQLlite + PhoneGap + Good Dynamics
中的任何问题时,任何人都可以提出更好的解决方案来插入多条记录我使用的示例代码:
for(var j=0;j< bulkTransactions.length;j++){
(function(item,count){
db.transaction(function(tx){
if(item){
var insQuery= item;
tx.executeSql(insQuery, [],
function(tx,results){ //Success
if(count == bulkTransactions.length-1) {
if(callBackMethod != null)callBackMethod();
}
},
function(tx,e){
//Handle Error
}
);
}
});
}) (bulkTransactions[j],j);
}
该应用程序在iOS模拟器(甚至显示1GB内存使用率)或Chrome浏览器中运行良好,下图显示了iOS模拟器中12000条记录的内存使用情况: