コードにアラートを入れると、WebSql のトランザクションの動作がおかしくなりました。3つの取引があります。これらは t1、t2、および t3 です。
次のコードは、期待どおりに完全に機能します。
var db = openDatabase('DBTest', "1.0", "Example DB", "200000");
db.transaction(function(tx) {
alert('Tranasction.1........');
jQuery('body').append('<h1>Added a h1 by t1</h1>');
});
db.transaction(function(tx) {
alert('Tranasction.2........');
jQuery('body').append('<h1>Added a h1 by t2</h1>');
});
db.transaction(function(tx) {
alert('Transaction.3.........');
jQuery('body').append('<h1>Added a h1 by t3</h1>');
});
しかし、トランザクションを実行する直前にアラートステートメントを挿入すると。物事は期待どおりに機能しません。
例えば。alert('An alert just before transaction t3'); を入れた場合
変更後のコードは次のようになります。
var db = openDatabase('DBTest', "1.0", "Example DB", "200000");
db.transaction(function(tx) {
alert('Tranasction.1........');
jQuery('body').append('<h1>Added a h1 by t1</h1>');
});
db.transaction(function(tx) {
alert('Tranasction.2........');
jQuery('body').append('<h1>Added a h1 by t2</h1>');
});
//THIS ALERT IS ADDED
alert('An alert just before transaction t3');
db.transaction(function(tx) {
alert('Transaction.3.........');
jQuery('body').append('<h1>Added a h1 by t3</h1>');
});
変更後の動作の変更: 最初の 2 つのトランザクションは発生しません。
それは期待される動作ですか?はいの場合、それはどのように正当化されますか?