Chrome中的Sqlite

xra*_*alf 61 javascript sqlite google-chrome-extension

可以像使用firefox扩展一样使用与sqlite数据库交互的chrome扩展吗?你能给我一些建议或链接,有关开发chrome扩展与sqlite交互的更多信息吗?

谢谢

mar*_*tin 25

您可以在浏览器中使用Web SQL API,这是一个普通的SQLite数据库,您可以像任何其他SQLite数据库一样打开/修改它,例如Lita.

Chrome会根据域名或扩展ID自动定位数据库.几个月前,我在我的博客上发布了关于如何删除Chrome数据库的简短文章,因为当你测试某些功能时它非常有用.


sam*_*ris 21

您可能能够利用sql.js.

sql.js是SQLite到JavaScript的一个端口,通过使用Emscripten编译SQLite C代码.这里没有C绑定或node-gyp编译.

<script src='js/sql.js'></script>
<script>
    //Create the database
    var db = new SQL.Database();
    // Run a query without reading the results
    db.run("CREATE TABLE test (col1, col2);");
    // Insert two rows: (1,111) and (2,222)
    db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,222]);

    // Prepare a statement
    var stmt = db.prepare("SELECT * FROM test WHERE col1 BETWEEN $start AND $end");
    stmt.getAsObject({$start:1, $end:1}); // {col1:1, col2:111}

    // Bind new values
    stmt.bind({$start:1, $end:2});
    while(stmt.step()) { //
        var row = stmt.getAsObject();
        // [...] do something with the row of result
    }
</script>
Run Code Online (Sandbox Code Playgroud)

sql.js是一个单独的JavaScript文件,目前大小约为1.5MiB.虽然这可能是网页中的问题,但扩展可能会接受大小.

  • 应该注意的是,这是迄今为止唯一可能连接到现有DB的产品 (2认同)

ser*_*erg 13

Chrome支持WebDatabase API(由sqlite提供支持),但看起来像W3C停止了它的开发.


Sch*_*kie 8

我不太确定你的意思是"我可以在chrome中使用sqlite(websql)"或"我可以在firefox中使用sqlite(websql)",所以我将回答这两个问题:

请注意,WebSQL不是进入.sqlite数据库的完全访问管道.这是WebSQL.你将无法运行某些特定的查询VACUUM

虽然创建/读取/更新/删除很棒.我创建了一个小库来帮助处理所有烦人的细节,例如创建表和查询,并提供一个带有关系的小ORM/ActiveRecord模式以及一大堆可以让你在没有时间启动的示例,你可以查看在这里

另外,请注意,如果要构建FireFox扩展:它们的扩展格式即将更改.确保你想投入两次时间.

尽管WebSQL规范已被弃用多年,但即使是现在的2017年,仍然看起来似乎不会在可预见的时间内从Chrome中删除.他们正在跟踪使用情况统计信息,在实际规范的现实世界中仍有大量的Chrome扩展程序和网站.