gpt4 book ai didi

javascript - 运行许多查询时,Chrome 与 Web SQL 中的问题/错误?

转载 作者:行者123 更新时间:2023-11-28 02:47:23 25 4
gpt4 key购买 nike

似乎当一个人在 Chrome 中运行大量连续的 SQL 查询时,有些查询会“丢失”,即它们不会终止,但不会触发任何类型的错误/警告。

这是我能想到的最简单的测试:

var shortName = "db", version = "1.0", displayName = "db", maxSize = 20 * 1024 * 1024;
var db = openDatabase(shortName, version, displayName, maxSize);
db.transaction(function(tx) {
tx.executeSql("CREATE TABLE IF NOT EXISTS cache (key TEXT PRIMARY KEY ASC NOT NULL, value TEXT NULL);");
});

for (var i=0; i<5; i++) {
db.transaction(function(tx) {
tx.executeSql("SELECT * FROM cache WHERE key = ?", ["test"],
function() {
console.log("ok");
},
function() {
console.warn("error: ", err);
});
});
}

现在,如果我将上述代码放入网页中,我希望在控制台中看到五个“ok”,如下所示:/image/FgcNz.png (这是正确的)。

但是,如果我快速重新加载页面,有时会得到一个较差的数字,没有任何类型的错误或警告,例如:/image/bc5Kl.png (这是不正确的:只有两个“ok”,而不是五个)。

这是我的问题:

  1. 上面的代码有错误吗?
  2. 如果不是,这是 Chrome/Sqlite 错误还是“正常”/预期行为?
  3. 最重要的是,我如何编写防御性代码来应对这种情况?我真的需要知道每个查询是否终止,因为如果它们只能以不确定的方式结束,那么依赖它的代码部分永远不会运行......

我使用 9.0.597.19 beta。

最佳答案

我也有同样的问题。在 Safari 和 Opera 上运行良好的代码在 Chrome 中显示出意外但可重现的结果(最新生产版本:8.0.552.237)。

我正在尝试(预)填充通过 XMLHTTPRequests 检索的 1000 多行数据库。对于大约 20 行的表,一切正常。然而,两个表分别有(或应该有)147 行和 857 行。填充 7 条记录后“停止”。

对数字“7”的一种解释是,最后一个正确工作的表有 7 条记录。之后,不知怎的,事情开始搞砸了......

放置“失败”回调以将内容记录到控制台不会产生任何信息。

关于javascript - 运行许多查询时,Chrome 与 Web SQL 中的问题/错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4583916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com