我有一组 HTML 文件和一个 SQLite 数据库,我想使用 file:// 方案从浏览器访问它们。是否可以使用 JavaScript 访问数据库并创建查询(和表)?
7 回答
其实答案是肯定的。这是一个如何执行此操作的示例:http: //html5doctor.com/introducing-web-sql-databases/
坏事是浏览器对它的支持非常有限。
此处提供更多信息HTML5 IndexedDB、Web SQL 数据库和浏览器大战
PS:正如@Christoph 所说,Web SQL 不再处于主动维护状态,Web 应用程序工作组也不打算进一步维护它,所以请看这里https://developer.mozilla.org/en-US/docs/IndexedDB。
SQL.js
编辑
正如@clentfort 所说,您可以使用SQL.js使用客户端 JavaScript 访问 SQLite 数据库。
您可以使用SQL.js,它是编译为 JavaScript 的 SQLlite 库,并将数据库存储在 HTML5 中引入的本地存储中。
最新答案
我的 sql.js 分支现在已合并到kriken 的 repo 上的原始版本中。
好的文档也可以在原始仓库中找到。
原始答案(已过时)
您应该使用较新版本的sql.js。它是 sqlite 3.8 的一个端口,有一个很好的文档并且(由我)积极维护。它支持预处理语句和 BLOB 数据类型。
其中最有趣的功能之一HTML5
是能够在本地存储数据并允许应用程序脱机运行。有三种不同的 API 可以处理这些功能,选择一种取决于您想要对计划在本地存储的数据做什么:
- Web 存储:用于具有键/值对的基本本地存储
- 离线存储:使用清单缓存整个文件以供离线使用
- Web数据库:用于关系数据库存储
如需更多参考,请参阅介绍 HTML5 存储 API
以及如何使用
http://cookbooks.adobe.com/post_Store_data_in_the_HTML5_SQLite_database-19115.html
使用 PouchDB 之类的东西怎么样?http://pouchdb.com/
恕我直言,最好的方法是通过 AJAX 使用 POST 调用 Python,并在 Python 中对 DB 执行所有操作,然后将结果返回给 javascript。Python 中的 json 和 sqlite 支持非常棒,它 100% 内置在 Python 的最新版本中,因此没有“安装这个,安装那个”的痛苦。在 Python 中:
import sqlite3
import json
......这就是你所需要的。它是每个 Python 发行版的一部分。
@Sedrick Jefferson 要求提供示例,所以(有点迟到)我在这里编写了 Javascript 和 Python 之间的独立来回。
最好用 python 和 flask 编码。如果您将WebSQL与 JavaScript 一起使用,那么它只会保存单个窗口的数据,而不是全球范围内的数据,因为它是一个浏览器 cookie。Flask是一个 python 网络服务器,一旦你用它创建一个页面,你就可以导入 sqlite3。另一种方法是使用 php,但要点是使用 JavaScript 是个坏主意。
PS 实际上你可以尝试使用loaclStorage我听说它可以保存数据只要你想保存它。