PouchDB 预加载数据库

PouchDB preload database

抱歉,这是一个愚蠢的问题,然后我淹没在一杯水中(顺便说一句,这并不罕见)。有什么方法可以使用预加载(准备使用)的 PouchDB 数据库设置 Web(最好是 cordova)应用程序?理想情况下,我想要的是在执行 db = new PouchDB('databaseName') 时准备好一个 PouchDB 数据库文件,而不必在应用程序第一次 运行 时加载所有文档。

我知道有 pouchdb-replication-stream 但我需要加载转储文件,然后应用程序数据的大小将被复制(在转储文件和 PouchDB 数据库中) ).也没有远程加载的机会。

干杯!!

编辑:您现在可以预加载 SQLite 数据库或使用 pouchdb-load; this blog post.

中有说明

目前完全预加载的唯一方法是使用 SQLite 插件,然后在构建步骤中使用 PhantomJS 并将 SQLite 文件复制到您的应用程序中。

我一般不推荐 SQLite 插件,因为 1) 实施的一般不稳定和 2) 与 IndexedDB/WebSQL 相比速度较慢。因此,如果我正在编写这样的应用程序并且我想要最好的预加载性能,我会:

  1. 使用pouchdb-dump-cli转储到文件
  2. 使用 pouchdb-load 加载到 PouchDB 中,如果确实需要,在应用程序加载时在初始加载时抛出一个微调器。

您可以在此处进行一些优化:

  1. worker-pouch 插件适用于 Android(可惜不是 iOS),可用于避免阻塞 DOM 操作。应该使用 pouchdb-load 插件,或者你可以在 worker 内部做所有事情(最好避免 any 阻塞,而不仅仅是与 IndexedDB 相关的阻塞)。
  2. 为避免在初始加载期间阻塞用户,请将您的转储文件分解为一些关键数据的子集,先加载它,然后再加载其余数据。