10

有没有办法在单个事务中执行多个语句?我想做类似的事情:

db.transaction(function (tx) {
    tx.executeSql(
        "CREATE TABLE Foo(ID INTEGER); CREATE TABLE Bar(ID INTEGER)",
        function (tx, result) {
            alert("success!");
        });
    });

但相反,我发现我必须这样做:

db.transaction(function (tx) {
    tx.executeSql("CREATE TABLE Foo(ID INTEGER)");
    tx.executeSql("CREATE TABLE Bar(ID INTEGER)",
        function (tx, result) {
            alert("success!");
        });
    });

我是否仅限于必须在自己的事务中执行单个语句,然后在最后一个事务中触发 successFn,或者有没有办法可以在单个事务中执行多个语句?

4

1 回答 1

8

您的第二个代码已经在单个事务中执行多个语句。第一个代码不正确(不支持),因为不清楚返回回调的结果。

即使支持,性能也是一样的,因为在内部,它必须转换为第二条语句。

于 2012-12-04T23:13:41.887 回答