在线教程显示了此交易:
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "foobar")');
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "logmsg")');
});
我现在已经在多个线程中读到这些查询(每个 executeSql)在事务中异步运行。
如果这是真的,我们是否在创建表之前尝试插入有轻微的风险?
还是不正确?查询是否在事务中串行运行?
虽然实际执行是异步的,但语句在事务中排队,因此序列化多个语句。