用于离线Chrome应用的API

时间:2015-01-10 17:32:28

标签: google-chrome google-chrome-app offlineapps

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

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

=>大容量

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

=>快速

=>安全(用户无法调节数据)

在IndexDB和File System API之间混淆

我了解网络语言以及在线应用如何在服务器上存储数据。但是对于如何离线保存数据知之甚少。

1 个答案:

答案 0 :(得分:4)

这完全取决于您的需求。 Chrome应用有几个限制。因为它们必须非常快web API's are disabled。例如,您无法使用localStorage和webSql。

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

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

您可以选择上述之一。我可以看到你可能想要使用IndexedDB API。它不是SQL,它是保存数据的不同方法。如果您从未使用它,请先尝试一些sample app。然而,它快速,高效并与unlimitedStorage permission结合也可以设置大量数据。

我还建议您阅读Chrome Apps文档中的“脱机第一页”,其中列出了使应用离线的解决方案示例。