【发布时间】:2017-04-14 06:30:06
【问题描述】:
我正在开始使用 PouchDB,我正在使用 BulkDocs 函数,它用于在数据库中插入批量数据,记录在这里:https://pouchdb.com/guides/bulk-operations.html。
效果很好,但是,正如文档本身所说,它与调用一系列链式 put() 函数相同。
问题在于我还使用了 couchdb 的更改函数来监听数据库中的更改并更新 UI,如下:
db.changes({
since: 'now',
live: true,
}).on('change', refreshCarList);
当我调用批量更新时,它会多次触发“更改”事件(每个更新的文档一次),并且取决于批量大小,每次保存都会触发数百甚至数千次。这会导致多次调用回调,冻结我的 UI。
我的问题是:有没有办法/选项/hack 只进行一次批量更新调用更改?
【问题讨论】:
-
This 可能会有所帮助。
-
一个
bulkDocs操作更新了多个文档。更改响应针对单个文档。您希望如何处理多个更新的单个更改事件? -
我希望更改不会响应单个文档,而是响应单个查询。
-
@raphadko:不过,这并不能真正回答我的问题。您希望多个文档的
change事件看起来像什么? (以及您将如何处理多种事件类型——例如某些文档成功同步,而其他文档有错误)在 PouchDB 或 CouchDB 中没有相应的格式。您似乎要求从根本上更改“更改”提要格式。还是我错过了什么? -
老实说,我不知道解决方案会是什么样子,我指出同时使用更改和 bulkDocs 时可能会出现性能问题,特别是在更改更新 UI 时。正如@Jason Jarrett 指出的那样,也许关闭侦听器然后再进行单一更新可以解决这个问题,有点骇人听闻,但可以完成工作。
标签: javascript pouchdb