'连续'对PouchDB replicate()意味着什么?

时间:2013-06-14 05:45:50

标签: couchdb pouchdb

根据PouchDB复制()documentation,可以向continuous添加Pouch.replicate()选项:

  

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

我明白这意味着什么,但它是如何运作的?我看过代码,但很难理解'订阅'是如何完成的。

2 个答案:

答案 0 :(得分:6)

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

如果它是远程CouchDB,则pouch会向该{km({3}}} xhr资源发出db/_changes个请求。正如金提到的那样,确实设定了http://wiki.apache.org/couchdb/HTTP_database_API#Changeslongpoll选项使沙发等待,直到发送任何内容之前发生变化 - 这样您就不会轮询结束,只发现没有变化。

如果第一个数据库是本地PouchDB,它会侦听“更改”事件,只要在数据库中进行了更改,就会触发这些事件。

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

答案 1 :(得分:1)

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