所以,我有一个奇怪的问题。 我正在通过Web应用程序中的javascript使用SQLite数据库。 我有一个没有被调用的函数的问题。这就是我所拥有的:
var db = window.openDatabase("database", "1.0", "Database",
200000);
db.transaction(functionIUse, errorCB);
上述代码不起作用。 functionIUse不会被调用。但是,如果我喜欢这样:
var db = window.openDatabase("database", "1.0", "Database",
200000);
alert('db open');
db.transaction(functionIUse, errorCB);
它突然被召唤了。任何人都可以向我解释这种行为吗?这让我很困惑。
显然,我也想知道如何让它发挥作用 - 每一次。
感谢。
答案 0 :(得分:1)
你的问题肯定很奇怪,但我认为这与你的错误回调有关。
为了测试这个,我创建了以下jsfiddle
var errorCB = function(){
alert("An Error Occured");
}
var functionIUse = function(transaction){
alert('functionIUse Called');
}
var functionIUse2 = function(transaction){
alert('functionIUse2 Called');
}
var db = window.openDatabase("database", "1.0", "Database", 200000);
alert('Database Has Been Opened');
db.transaction(functionIUse, errorCB);
db.transaction(functionIUse, errorCBThatDoesntExist);
执行此JavaScript函数时,我会调用函数,但函数IUse2不会调用,唯一不同的是errorCB存在但errorCBThatDoesntExists不存在。
我可能会建议使用JavaScript框架来帮助与html5sql.js等数据库进行交互。通过提供一个框架来处理HTML5 Web数据库的异步性质以及提供更清晰和更明确的回调,它可以使事情变得更简单。