4

今天我的应用程序遇到了一些非常奇怪的行为:我有这个函数来创建表,然后,成功后,继续编写代码。

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);
});

现在的问题是,成功回调函数被调用了 8 次。这是为什么?我已经使用这个代码几个月了,以前从来没有遇到过这个问题。有没有人遇到过类似的事情?任何帮助表示赞赏。

4

1 回答 1

0

很可能,您添加了一些多次调用该函数的代码。可能发生的情况是,由于该函数是异步的,如果您循环遍历它或运行不断调用该函数的代码,该代码将不会阻塞并等待您的函数完成执行。相反,它在不知道为什么会发生的情况下被多次调用。

您是否碰巧编写了围绕问题的测试,以便您知道什么被破坏了?

于 2014-08-17T07:18:15.950 回答