同期機能を備えたCouchbase Sync Gateway 1.2でPouchDB 5.3を使用しています。小さなレコード セット (20 .. 50) を使用する場合、問題なく動作します。しかし、3K を使用すると問題が発生します。最初に同期しようとすると、サーバーへの要求が約 17K になるためです。
これは、この問題のある構成です。
this.sync = function(remoteDatabase, onComplete, onError) {
database.sync(remoteDatabase, {
live: true,
retry: false
}).on('change', function(change) {
// yo, something changed!
console.log("Sync Change");
}).on('paused', function(info) {
// replication was paused, usually because of a lost connection
console.log("Sync Paused");
if (onComplete)
onComplete();
}).on('active', function(info) {
// replication was resumed
console.log("Sync Active");
}).on('error', function(err) {
// totally unhandled error (shouldn't happen)
console.log("Sync Error", err);
if (onError)
onError();
}).on('complete', function(info) {
console.log("Sync Complete");
}).then(function(info) {
console.log("Sync Complete");
});
}
また、この 17k リクエストがいつ完了したかを検出することはできません。
live メソッドを false に設定すると、約 3k のリクエストしかありませんが、その後、両側のいずれかで何らかの変更が加えられたときに同期できません。
これは、繰り返されるリクエストのセットです (異なる uuid を使用)
http://...._bulk_docs?_nonce=1457702282722
http://...._bulk_docs?_nonce=1457702282722
http://....._revs_diff?_nonce=1457702282818
http://....._revs_diff?_nonce=1457702282818
http://....._local/EhRrzqajjvWCiEqNXBk87A%3D%3D?
http://....._local/EhRrzqajjvWCiEqNXBk87A%3D%3D?
この 17k リクエストを防ぐ方法について何か考えはありますか??
そして、これが必須である場合、一度検出する方法についてのアイデアはありますか?
ありがとう!
https://github.com/pouchdb/pouchdb/issues/4975でこの問題に従ってください