Javascript 含铬闪锌矿
是否有可能使与sqlite数据库交互的chrome扩展与firefox扩展类似?你能给我一些建议或链接吗?关于开发与sqlite交互的chrome扩展,哪里有更多信息 谢谢您Chrome支持(由sqlite提供支持),但看起来W3C停止了它的运行。您可以在浏览器中使用它,这是一个普通的sqlite数据库,您可以像其他任何sqlite数据库一样打开/修改它,例如使用Javascript 含铬闪锌矿,javascript,sqlite,google-chrome-extension,Javascript,Sqlite,Google Chrome Extension,是否有可能使与sqlite数据库交互的chrome扩展与firefox扩展类似?你能给我一些建议或链接吗?关于开发与sqlite交互的chrome扩展,哪里有更多信息 谢谢您Chrome支持(由sqlite提供支持),但看起来W3C停止了它的运行。您可以在浏览器中使用它,这是一个普通的sqlite数据库,您可以像其他任何sqlite数据库一样打开/修改它,例如使用 Chrome根据域名或扩展id自动定位数据库。几个月前,我在我的博客上发表了一篇关于的短文,因为当您测试某些功能时,它非常有用。您可
Chrome根据域名或扩展id自动定位数据库。几个月前,我在我的博客上发表了一篇关于的短文,因为当您测试某些功能时,它非常有用。您可能能够利用它 js是SQLite到JavaScript的一个端口,它使用Emscripten编译SQLite C代码。这里没有C绑定或节点gyp编译
//创建数据库
var db=new SQL.Database();
//在不读取结果的情况下运行查询
run(“创建表测试(col1,col2);”;
//插入两行:(1111)和(2222)
db.run(“插入测试值(?),(?,?)”,[1111,2222]);
//准备一份声明
var stmt=db.prepare(“从测试中选择*,其中col1介于$start和$end之间”);
stmt.getAsObject({$start:1,$end:1});//{col1:1,col2:111}
//绑定新值
stmt.bind({$start:1,$end:2});
而(stmt.step()){//
var row=stmt.getAsObject();
//[…]对结果行执行某些操作
}
sql.js
是一个单独的JavaScript文件,当前大小约为1.5MiB。虽然这可能是网页中的一个问题,但扩展的大小可能是可以接受的。我不太确定您的意思是“我可以在chrome中使用sqlite(websql)吗”还是“我可以在firefox中使用sqlite(websql)”,因此我将回答这两个问题:
- 您不能在Firefox中使用WebSQL。(sql.js是一个选项,但实际上,1.5MB的js用于数据库?)
- 您完全可以在chrome扩展中使用WebSQL李>
VACUUM
不过,创建/读取/更新/删除还是很棒的。
我制作了一个小库,它可以帮助处理所有烦人的问题,比如创建表和查询,并提供了一个带有关系和所有内容的ORM/ActiveRecord模式,还有一大堆示例,应该可以让您立即开始使用
另外,要知道,如果你想构建一个FireFox扩展:确保你想投入两次时间
虽然WebSQL规范已经被弃用多年,但即使到了2017年,在可预见的时间内,它看起来也不会从Chrome中删除 我可以从chrome连接到我的sqlite数据库并进行一些选择、插入、更新和删除语句吗?@xralf如果你是指外部sqlite安装,那么没有。chrome附带内置sqlite,你可以使用它(创建数据库、执行选择等)。我想使用firefox和chrome中相同的sqlite数据库。使用Web SQL API可能吗?绝对不可能使用Web SQL API。可能使用NPAPI(),但这将非常困难。为什么需要共享同一个数据库?也许你可以使用一些外部数据库(如谷歌应用程序引擎),你的扩展(用于Chrome和Firefox)可以与之通信。。。只是一个想法:)。是否可以在数据库之间设置文件系统级链接?这将是一个有趣的尝试。应该注意的是,这是迄今为止唯一一个可能连接到现有DBs的产品
<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>