javascript - 通过 Javascript 调用 SQLite 时 Firefox 出错

标签 javascript firefox sqlite

我有一个在 Chrome/Safari 中功能齐全的网站,并且严重依赖 SQLite 来存储/访问数据。但是,在 Firefox 中测试时,第一次调用 openDatabase() 时会出错。这是我相当标准的 openDB 函数:

function openDB(){
try {
    if (!window.openDatabase) {
        alert('not supported');
    } else {
        var shortName = 'tales';
        var version = '1.0';
        var displayName = 'Tall Tales Database';
        var maxSize = 65536; // in bytes
        db = openDatabase(shortName, version, displayName, maxSize); 
        // You should have a database instance in db.
    }
} catch(e) {
    // Error handling code goes here.
    if (e == 2) {
        // Version number mismatch.
        alert("Invalid database version.");
    } else {
        alert("Unknown error "+e+".");
    }
    return;
}

}

就像我说的 - 当我警告 openDatabase 时,它​​是未定义的,并且打印的未知错误是“不受支持的”。我假设 Firefox 实际上支持 SQLite,是我做错了什么还是它需要特定于浏览器的代码?

谢谢! 克劳迪娅

最佳答案

Firefox 没有该功能。 Mozilla 认为 SQLite 不适合 Web,因此在 Firefox 4 中,他们将选择并实现 IndexedDB 规范。 W3C 的草案(包括 Mozilla 的提案)。这是一篇很好的博客文章,详细介绍了这些差异:http://hacks.mozilla.org/2010/06/comparing-indexeddb-and-webdatabase/

所以,是的,您必须使用客户端特定代码才能支持 FF4 - 至少在其他主要浏览器中实现 IndexedDB 之前是这样。对于 FF4 之前的任何内容,不支持任何客户端数据库(不包括 localStorage 等)。

关于javascript - 通过 Javascript 调用 SQLite 时 Firefox 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3846784/

相关文章:

ios - 使用 SQLITE 的 Swift 应用程序在更新数据库后崩溃。 SQLITE 文件未复制到文件/包

javascript - 使用javascript定位h1中每个单词的首字母

sqlite - 更新记录及其与 sequelize 的关联

javascript - 如何将 JavaScript 值传递到输入字段

css - 如何在 Firefox WebExtension 上使用@font-face

firefox - 将火狐降级到8

javascript - 使用 rtc 的 Firefox createMediaStreamDestination 错误?

javascript - 在 Node js 中转义一个字符串以将其插入到 sqlite3 数据库中

javascript - 音频文件数组

javascript - ExtJS 应用程序无法启动