2017-04-14 8 views
1

私はPouchDBを使い始めると私はここに文書化され、これは、データベース内の大量のデータを挿入するために使用され、BulkDocs機能を使用しています:https://pouchdb.com/guides/bulk-operations.htmlを。PouchDBのbulkDocsは「変更」イベントを1回だけトリガできますか?

は、ドキュメント自体は、それがチェーンプット()一連の機能を呼び出すのと同じである、と言うように、かなりうまく機能しますが、。私は一括更新を呼び出すと

db.changes({ 
     since: 'now', 
     live: true, 
    }).on('change', refreshCarList); 

は、それがトリガー:

これに伴う問題は、私も、CouchDBのの変更を使用していますが、これで、UIのデータベースの変更をリッスンし、更新するために機能するということです'変更'イベントを複数回(更新された文書ごとに1回)、保存ごとに大量、数百、または数千回に応じて変更します。この結果、コールバックが複数回呼び出され、UIがフリーズされます。

私の質問は:方法/オプション/一度だけ一括更新呼び出しの変更を行うためにハックはありますか?

+0

[この](http://stackoverflow.com/questions/12713564/function-in-javascript-that-c​​an-be-called-only-once)が役に立つかもしれません。 – Difster

+0

'bulkDocs'操作は複数のドキュメントを更新します。変更応答は、単一の文書に対するものです。複数の更新が1つの変更イベントで処理されるとはどうでしょうか? – Flimzy

+0

私は変更が単一のドキュメントに反応しないことを期待しますが、単一のクエリには対応しません。 – raphadko

答えて

2

あなたは、ビルド操作が完了するまで(リスナーは無視するために使用する)は、バルク操作を呼び出す前にリスナーをオフにする、または以前にフラグを設定することを検討した後、最後に一回呼び出すことができます。

関連する問題