javascript - HTML5/js sqlite数据库不进入交易功能

标签 javascript sqlite html

我有以下 javascript 函数:

function initDatabase() {

    if (!window.openDatabase) {
        alert('Databases not supported in this browser');
    } else {
        var shortName = 'TestDB';
        var version = '1.0';
        var displayName = 'HTML5 Test Database';
        var maxSize = 1024 * 1024;
        db = openDatabase(shortName, version, displayName, maxSize);
        alert('opened db ' + db); //this says its a database

        db.transaction(function (tx) {
            alert('before create'); //never gets here
            tx.executeSql('CREATE TABLE IF NOT EXISTS Person(FirstName TEXT, MiddleName TEXT, LastName TEXT);');
            alert('after create');
        });

        alert('after transaction'); //does get here
    }
}

在文档准备好时被调用:

 $(document).ready(function () {
        initDatabase();
    });

正如您从评论中看到的那样,数据库似乎已创建/打开(虽然我不确定如何验证这一点)但是当我尝试创建事务并执行一些 sql 时,似乎从未输入该函数。

我做错了什么吗?我如何验证数据库是否存在?

我正在使用 Chrome 14 进行测试。

谢谢

最佳答案

警报似乎是警告。它可能正在暂停导致它无法工作的事情。

alert 无论如何(在调试方面)都被 console.log“取代”了,如果我用日志替换警报,一切似乎都正常(我得到所有四个日志)。

(要查看这些 console.log 调用,您可以按 F12 并单击 Console。)

关于javascript - HTML5/js sqlite数据库不进入交易功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919188/

相关文章:

java - 如何使用 LIKE SelectionArgs 将 rawQuery() 转换为 query()

mysql - 请求设置 DATABASES,但在我的 Django 项目中设置未配置错误

javascript - 我们可以使用 javascript 创建日志文件吗

javascript - 使用 jQuery 将 HTML <dl> 转换为嵌套的 JavaScript 数组

html - 如何使 html 元素不可选择,除了文本区域和输入?

javascript - 更改元素的 css 的 onclick 函数

javascript - 'require(' ./app/routes.js')(app);' 是什么意思在此 Node 服务器示例中是什么意思?

mysql - 列名不明确错误

javascript - create-react-app/react-native-elements 错误

javascript - 创建的元素未定义