PouchDB预加载数据库

时间:2015-10-15 19:06:56

标签: cordova pouchdb

对不起,这是一个愚蠢的问题,然后我淹死在一杯水(不是罕见的BTW)。有没有办法使用预装(即用型)PouchDB数据库设置Web(理想情况下为cordova)应用程序?理想情况下,我想要的是在执行db = new PouchDB('databaseName')时准备好使用PouchDB数据库文件,而无需在应用程序运行的第一次时加载所有文档。

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

干杯!!

1 个答案:

答案 0 :(得分:3)

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

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

由于1)执行的一般不稳定性和2)与IndexedDB / WebSQL相比速度慢,我通常不推荐使用SQLite插件。因此,如果我正在编写这样的应用程序,并且我希望获得最佳的预加载性能,那么我会:

  1. 使用pouchdb-dump-cli转储到文件
  2. 使用pouchdb-load加载到PouchDB中,如果您确实需要,在应用程序加载时,在初始加载时抛出微调器。
  3. 您可以在此处进行一些优化:

    1. worker-pouch插件适用于Android(不是iOS),可用于避免阻止DOM操作。应该使用pouchdb-load插件,或者您可以在工作者内部执行所有操作(最好避免任何阻止,而不仅仅是与IndexedDB相关的阻止)。
    2. 为避免在初始加载期间阻止用户,请将转储文件拆分为关键数据的某个子集,先加载,然后再加载其余数据。