【发布时间】:2015-09-12 23:13:28
【问题描述】:
当我在代码中添加一些警报时,WebSql 的事务表现异常。我有三笔交易要做。它们是 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>');
});
但是,当我在进行交易之前插入警告语句时。事情没有按预期工作。
例如。如果我发出警报('在事务 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>');
});
更改后的行为变化: 前两个事务不会发生。
这是预期的行为。如果是,那它的合理性如何?
【问题讨论】:
-
我有类似的问题。你知道是什么问题吗?
-
我没有确切的解释,但是用 console.log 替换 alert 解决了这个问题..
-
我也遇到了警报问题。
-
我也有这个问题。使用 chrome 进行测试时插入不会一直工作,我删除了警报,现在它似乎工作了。有人知道为什么吗?
标签: javascript html transactions local-storage web-sql