我有大约 300 条记录需要插入到 websql 中。我开始编写 300 个不带参数的单独 tx.executeSql 插入语句。
tx.executeSql("INSERT INTO `beerlist` VALUES ('1', '21st Amendment', 'Back in Black IPA', '83', 'IPA', 'A');");
在 Chrome 上,这需要 2 毫秒。在 Android 上通过 phonegap 运行,这大约需要 43,438 毫秒。所以我切换到迭代一些 JSON 并使用 prepare 语句。像这样:
var beerList = {"beers":[{"beerid":"1","brewery":"21st Amendment","beername":"Back in Black IPA","bascore":"83","beertype":"IPA","beertable":"A"}}
$.each(beerList.beers, function(i, object) {
var insert = 'INSERT INTO beerlist VALUES (?, ?, ?, ?, ?, ?)';
tx.executeSql(insert, [object.beerid, object.brewery, object.beername, object.bascore, object.beertype, object.beertable], Beer.successInsert, Beer.failureInsert);
});
我读到准备应该更快的地方,但我在 Chrome 上看到了相同的性能,实际上通过 Android 上的 Phonegap 的性能稍差,为 53,559 毫秒。我不敢相信插入 300 条记录需要大约 50 秒。有什么想法吗?