10

1 つのトランザクションで複数のステートメントを実行する方法はありますか? 私は次のようなことをしたい:

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

2 番目のコードは、1 つのトランザクションで複数のステートメントを既に実行しています。最初のコードは正しくありません (サポートされていません)。これは、コールバックを返す結果が明確でないためです。

サポートされていても、内部的には 2 番目のステートメントに変換する必要があるため、パフォーマンスは同じです。

于 2012-12-04T23:13:41.887 に答える