【问题标题】:What does 'continuous' mean for PouchDB replicate()?PouchDB 复制()的“连续”是什么意思?
【发布时间】:2013-06-14 23:06:05
【问题描述】:

根据 PouchDB replicate() documentation 可以将continuous 选项添加到Pouch.replicate()

如果为 true,则开始订阅第一个数据库中的更改并将它们复制到第二个。

我明白这意味着什么,但它是如何工作的?我查看了代码,但很难理解“订阅”是如何完成的。

【问题讨论】:

    标签: couchdb pouchdb


    【解决方案1】:

    这取决于第一个数据库是什么。

    如果是远程 CouchDB,pouch 会向该 couchdb (http://wiki.apache.org/couchdb/HTTP_database_API#Changes) 的 db/_changes 资源发出 xhr 请求。正如 Kim 所说,它确实设置了 feed=longpolllongpoll 选项让 couch 等到有变化才发送任何东西——这样你就不会轮询一遍却发现没有变化。

    如果第一个数据库是本地 PouchDB,它会侦听“更改”事件,这些事件会在数据库发生更改时触发。

    无论哪种方式,当复制器看到更改进入时,它会将其复制到第二个数据库。

    【讨论】:

      【解决方案2】:

      我还没有阅读 PouchDB 代码,但唯一的方法是听 _changes feed,可能将 feed 设置为 long-pollingcontinuous

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-12
        • 2015-01-22
        • 1970-01-01
        • 2020-10-27
        • 2015-07-15
        • 2018-07-17
        • 2012-08-13
        • 2011-12-23
        相关资源
        最近更新 更多