2

PouchDB のレプリケート()ドキュメントcontinuousによると、次のオプションを追加できPouch.replicate()ます。

true の場合、最初のデータベースの変更をサブスクライブし、2 番目のデータベースにレプリケートします。

これの意味は理解できましたが、どのように機能しますか? コードを見てきましたが、「サブスクライブ」がどのように行われるかを理解するのは困難です。

4

2 に答える 2

6

最初のデータベースが何であるかによって異なります。

リモート CouchDB の場合、pouch はその couchdbxhrのリソースにリクエストを行います ( http://wiki.apache.org/couchdb/HTTP_database_API#Changes )。キムが述べたように、実際にはfeed=longpollを設定します。このオプションは、何も送信する前に変更があるまでカウチを待機させます。このようにして、変更がないことを確認するためだけにポーリングすることはありません。db/_changeslongpoll

最初のデータベースがローカル PouchDB の場合、データベースで変更が行われるたびにトリガーされる「変更」イベントをリッスンします。

どちらの方法でも、レプリケーターが変更を確認すると、それを 2 番目のデータベースにレプリケートします。

于 2013-06-14T15:06:05.280 に答える
1

私は PouchDB コードを読んでいませんが、それを行う唯一の方法は、おそらくまたはに設定して_changesfeedをリッスンすることです。feedlong-pollingcontinuous

于 2013-06-14T08:36:39.170 に答える