API 用于离线 Chrome 应用的内容

What API to use for Offline Chrome App

我想开发一个离线 chrome 应用程序。

由于在离线应用程序中 SQL 不可用,所以 API 可以用于以下目的。

=>大容量存储

=>设置和获取值的高效方法

=>快速

=>安全(用户无法修改数据)

混淆 IndexDB 和文件系统 API

我了解网络语言以及在线应用程序如何在服务器上存储数据。但是对如何离线保存数据了解不多。

这完全取决于您的需求。 Chrome 应用程序有几个限制。因为他们一定要非常快一些web API's are disabled。例如,您不能使用 localStorage 和 webSql。

但是在应用程序中,您有不同的存储选项集:

  • chrome.storage.local - 等效于 localStorage 但异步。您还可以一次 save/read 多个对象
  • chrome.storage.sync - 同上,但数据在不同的应用程序实例之间共享(在其他浏览器的配置文件或机器上)
  • web filesystem API - 众所周知的网络文件系统 API 可以将任何类型的文件保存在受保护的浏览器存储中。用户无权直接访问此文件,只有应用程序有
  • 上面的扩展:chrome.syncFileSystem - 它的工作方式与上面类似,但是使用 API 保存的文件使用 Google Drive as 在应用程序的实例(例如不同的机器)之间同步一个后端。但是,用户无法在云端硬盘 UI 中看到同步文件,因为它们是隐藏的。
  • chrome.fileSystem API - Web 文件系统的另一个扩展 API,它使您可以访问用户的沙盒本地文件系统。您可以读取和写入用户选择的位置。
  • IndexedDB - 引用文档:IndexedDB 是一个 API 用于客户端存储大量结构化数据,它还可以使用索引对该数据进行高性能搜索。
  • 其他自定义解决方案在某些服务器上保存数据并在所有实例中同步更改

以上任选其一。如我所见,您可能希望使用 IndexedDB API。它不是 SQL,它是保存数据的不同方法。如果你之前从未使用过它,请尝试一些sample app first. However it's fast, efficient and combining with unlimitedStorage permission 也可以设置大量数据。

我还建议您阅读 Chrome 应用程序文档中的离线第一页,其中包含使应用程序离线的解决方案示例。