4

我最近看到了有关 HTML5 和本地 Db 创建和使用的文章。我还看到了一些到现有 Access Db 后端的 Javascript 连接字符串示例。我有兴趣找到一种方法来构建 Db,用记录预加载它,并使用 Web 应用程序连接和读取 Db。例如,我在 Windows 中使用 Tcl 创建了许多独立应用程序,它们读取 Sqlite Db 文件。本质上,应用程序(.exe 文件)和 Db 文件在一个文件夹中彼此相邻,并且除了不使用服务器外,其功能与任何其他 Db 应用程序一样。

我希望能够做同样的事情,但使用网络应用程序 (.html) 和 Db 文件。有谁知道这是否可能?例如,我想构建一个可以在任何浏览器中运行的语言应用程序,并将预加载的单词保存在后端。所以会有两个文件,web 应用程序和 db 文件。

任何建议或资源链接将不胜感激。我唯一能想到的办法是通过 Javascript 通过 OLE 连接到 Access,但是我需要一个像 Sqlite 这样的多平台数据库。

谢谢,

DFM

4

2 回答 2

3

您的 Web 应用程序、其本地数据库和“启动”数据都必须从某个地方开始,所以我假设这一切都在与 Web 服务器的实时连接期间滚动。当第一次命中时,您:

  1. 交付页面和相关代码。
  2. 在您的 JavaScript 中,测试数据库是否存在。
    1. 存在吗?无需启动。什么都不做,或同步等。
    2. 不存在?构建它并提供初始数据。如果这很慢,您可以给用户一个友好的警告:“正在设置,请稍候。” 根据您下推所有数据的方式,您甚至可能会显示一个进度条:“正在初始化数据库:10%”...
  3. 没有第 3 步。

一旦设置完成,这个应用程序可以完全是本地的——不需要网络连接——只要你在不假设非本地资源的情况下对其进行编码。

参考:

于 2010-07-11T05:12:11.013 回答
3

您可以通过 javascript 访问已经创建的 sqlite db 文件。查看此链接http://code.google.com/apis/gears/api_database.html的“数据库文件的位置”区域

我知道这是针对 Google Gears 的,但 Gears 使用 SQLite,并且该位置在没有 Gears 且仅使用 sqlite db 文件的情况下仍然适用。

例如,我使用 firefox 附加组件“SQLite Manager”在本地计算机上创建一个 sqlite db 文件。然后我将该文件复制到 C:\Users\\AppData\Local\Google\Chrome\User Data\Default\databases\file__0

我能够在 Google Chrome 中使用 JavaScript 访问该文件:

    var db = null;

    try {
        if (window.openDatabase) {
            db = openDatabase("mydbfile.sqlite", "1.0", "HTML5 Database API example", 200000);
    ....

您必须小心 Chrome 中的文件名,因为它会自动通过 id 号命名每个 sqlite db。例如,我必须将我的 sqlite db 文件名重命名为 14 才能从浏览器中的 JavaScript 读取。一旦我这样做了,它就像一个冠军,我能够访问所有的表、数据等。

于 2011-04-17T08:06:07.443 回答