【问题标题】:HTML5 Database Use without Server没有服务器的 HTML5 数据库使用
【发布时间】:2013-12-18 20:07:30
【问题描述】:

是否可以在不使用服务器的情况下将本地数据库文件与 html5 一起使用。我想创建一个依赖于小型数据库信息的小型应用程序。我不想托管服务器只是为了获取信息。是否可以创建数据库文件并从本地文件中提取信息?

【问题讨论】:

    标签: database html web-applications web-sql


    【解决方案1】:

    取决于以下几点:

    您要构建的应用程序类型:

    • 从本地存储中提取一些数据的普通网站;
    • 具有用户生成数据的特殊用途托管网站/应用程序;
    • 具有专用平台(特定浏览器)并可以访问浏览器的非 Web API 的专用本地应用程序,以便访问浏览器自己的持久存储方法(文件存储、SQLite 等);
    • 具有专用环境的专用本地应用程序 -- 以便使用本地 Web 服务器和数据库部署应用程序;

    可用选项:

    • Indexed DB
    • Web Storage
    • 用于存储数据的 XML 文件和用于将数据转换为 HTML 的 XSLT 样式表;

    Indexed DBWeb Storage 在某些浏览器中可用,但您需要确保目标浏览器具有它。它们的功能不像 SQL RDBMS 那样完整和灵活,但如果您的应用程序不需要所有这些灵活性,它们可能符合要求。

    XML 文件可以包含您希望向用户显示的数据,并且可以手动(不是由用户)或动态(通过服务器脚本)更新它们。 对于动态更新,XML 的内容保存在 JavaScript 中并被操纵/更改(使用 XML DOM),当会话结束时,XML 内容被发送到服务器以完全替换以前的 XML 文件。如果每个用户都有一个文件并且他们从不写入彼此的文件,这可以正常工作。

    读取本地文件:

    禁止(出于安全原因)对所有本地 (JavaScript) 代码进行正常文件访问,这意味着在本地“拥有”文件意味着要么从已知来源(服务器)下载它,要么要求用户提供对本地文件。

    要求用户提供对本地文件的访问,这意味着向用户提供“文件输入”——类似于上传,但不实际上传文件。

    使用FileAPI 选择文件后,读取该文件应该相当简单。

    此工作流程将涉及用户在每次刷新页面时“给”您数据库 - 但由于它是一个页面的事情,这意味着只要您的脚本不刷新页面,就在每个会话中给您数据。

    【讨论】:

      【解决方案2】:

      您可以使用本地存储,但您可以从自己的计算机上运行服务器。您可以使用 Wamp 或 Xampp。其中使用 Apache 和 mysql。

      【讨论】:

      • 或者一个可移植的 PHP 可执行文件(我记得从 v.5.4 开始,PHP 有自己的小型 Web 服务器用于测试目的),并将 SQLite 作为数据库后端。
      【解决方案3】:

      我正在寻找比 cookie 更强大的东西。我正在为一位朋友制作一个只有 1 页的 Web 应用程序,并且在页面上有一个姓名列表。该人希望能够将姓名添加到列表中,但他们不想使用 Web 服务器。只需要计算机上本地的文件,因此需要一个名为 test-app 的文件夹,带有 index.html,可能还有一个可以存储在 Web 浏览器中的数据库文件,或者一种将信息保存到 Web 浏览器以供重复使用的方法。

      【讨论】:

      • 禁止(出于安全原因)对所有本地 (JavaScript) 代码进行正常文件访问。在本地“拥有”文件意味着要么从已知来源(服务器)下载它,要么要求用户提供对本地文件的访问权限(例如浏览上传按钮),然后使用较新的 FileAPI / FileReference 来读取那个文件。
      • 正如我在回答中添加的那样,除非您可以做出一些认真的让步,否则您不会在文件访问方面走得太远。 Indexed DBWeb Storage 替代方案更适合您的需求。它们专为替换 cookie/会话功能而设计。
      猜你喜欢
      • 2016-11-28
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      相关资源
      最近更新 更多