今天我的应用程序遇到了一些非常奇怪的行为: 我有这个函数来创建表,然后,当成功时,继续在代码中。
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS newsDetail(id unique, title, text, created, createdTS, imageSmall, imageBig, facebook, gameNumber)');
tx.executeSql('CREATE TABLE IF NOT EXISTS lastModified(id unique, ts)');
tx.executeSql('CREATE TABLE IF NOT EXISTS teams(pos unique, name, games, gd, points, s, snv, gl, glo, goals)');
tx.executeSql('CREATE TABLE IF NOT EXISTS players(number unique, name, nickname, birthdate, height, married, children, profession, clubs, position, image)');
tx.executeSql('CREATE TABLE IF NOT EXISTS games(id unique, home, away, score, date, shortDate)');
tx.executeSql('CREATE TABLE IF NOT EXISTS galleryCategories(id unique, name, date, thumb, ordering)');
tx.executeSql('CREATE TABLE IF NOT EXISTS galleryImages(id unique, url, description, catid, ordering)');
tx.executeSql('CREATE TABLE IF NOT EXISTS videos(id unique, url, title, image)');
}, errorCB, function () {
loadData('newslist', createNewslist, true);
loadData('refresh', loadNewOnes, true);
});
现在的问题是,Succes Callback函数被调用了8次。这是为什么?我已经使用这个代码几个月了,从来没有遇到过这个问题。有没有人碰到类似的东西呢?任何帮助表示赞赏。
答案 0 :(得分:0)
可能,您添加了一些调用该函数几次的代码。可能发生的是,由于该函数是异步的,如果您遍历它或运行连续调用该函数的代码,该代码将不会阻塞并等待您的函数完成执行。相反,它会被多次调用而不知道它为什么会发生。
您是否碰巧编写测试以解决问题,以便了解哪些内容已被破坏?