我想在浏览器中打开的 USB 记忆棒上制作某种网站。HTML 文件应该能够使用 javascript 读取同一文件夹中的 (sql-) 数据库。这对我来说是一个小应用程序。这些是我的文件:
USB stick:
-- start.html
-- database.sql
HTML5 提供“本地存储”,并且运行良好。但是使用这种方法,我无法访问本地已存在的数据库。浏览器会创建一个单独的空数据库并将其保存在存储棒上。我不需要编写数据集。
是否有不同的方法来读取数据库?谢谢!
我想在浏览器中打开的 USB 记忆棒上制作某种网站。HTML 文件应该能够使用 javascript 读取同一文件夹中的 (sql-) 数据库。这对我来说是一个小应用程序。这些是我的文件:
USB stick:
-- start.html
-- database.sql
HTML5 提供“本地存储”,并且运行良好。但是使用这种方法,我无法访问本地已存在的数据库。浏览器会创建一个单独的空数据库并将其保存在存储棒上。我不需要编写数据集。
是否有不同的方法来读取数据库?谢谢!
您可以使用sql.js,这是一个转换为 JavaScript 的 SQLite。不过,您必须提供自己的导入/导出功能,当然,您不能在 JS 中导出到文件系统,但由于您只是打算阅读,所以这不是问题。
您将无法让 Web 浏览器运行 sql 查询。您可以做的最好的事情是让它使用本地文件中的 ajax 加载数据。但是,无法将更新的数据库保存到本地文件系统。
您可以让 javascript 读取逗号分隔的数据,或者数据可以存储在 xml 或 json 中。
如果您希望保存数据,但我认为需要桌面应用程序
如果只是为了阅读,可以使用javascript读取和解析文件。但我不会使用 SQL 文件,而是使用包含 JSON 的文件。我不认为有可以读取 SQL 的 JavaScript 库,编写一个库也不是一件容易的事。
但请注意,即使您设法找到一个,文件的所有内容也会被读入内存,并且无法写入该文件。
由于您想要一个本地运行的数据库应用程序,我非常真诚地建议您不要使用 HTML 和 Javascript,而是使用 Java 或任何可以读取数据库并进行适当内存管理的本地语言。如果您愿意,您可以坚持使用 HTML/JS 作为 GUI,但您可能会发现完全将 HTML 排除在外同样容易。
你现在想要的,很不寻常。数据库应用程序往往有一个后端,而网站往往不是从 U 盘运行的。
问题是本地存储对于运行浏览器的系统来说是本地的,因为它对于浏览器来说是本地的,而不是来自文件的来源。
这意味着您必须将数据传送到浏览器,以便它在本地存储数据。现在,您的数据位于您的记忆棒上。
您有几个选择: 1. 将数据传送到浏览器以通过 javascript 创建本地存储数据库。2. 使用 Rob W 的答案并提供便携式浏览器(好主意 Rob!)
我没有假设数据如何存储在您的 .sql 文件中。如果它实际上是 SQL,那么你就不走运了。Localstorage 不是 sql 数据库。
关于 HTML5 中本地存储基础的好文章 http://diveintohtml5.info/storage.html