1

我正在尝试使用 pouchdb 的 bulkSave() 函数保存文档。但是,当保存这些文档时,它开始使用同步网关与主数据库同步,这样做时 web 应用程序会变慢,当我尝试导航到不同的选项卡时,该选项卡上不会显示任何内容。

以下是如何创建文档的示例:

for (var i = 0; i <= instances; i++) {
      if (i > 0) {
        advTask.startDate = new Date(new Date(advTask.startDate).setHours(new Date(advTask.startDate).getHours() + offset));
      }
      if (advTask.estimatedDurationUnit == 'Minutes') {
        advTask = $Date.getAdvTaskEndTimeIfMinutes(advTask);
      } else if (advTask.estimatedDurationUnit == 'Hours') {
        advTask = $Date.getAdvTaskEndTimeIfHours(advTask);
      } else if (advTask.estimatedDurationUnit == 'Days') {
        advTask = $Date.getAdvTaskEndTimeIfDays(advTask);
      }
        if(new Date(advTask.endDate).getTime() >= new Date($scope.advTask.endDate).getTime()) {
          // here save the task array using bulkSave() function
          $db.bulkSave(tasks).then(function (res) {
            $db.sync();
          });
          break;
        }
        advTask.startDate = $Date.toGMT(advTask.startDate);
        advTask.endDate = $Date.toGMT(advTask.endDate);
        var adv = angular.copy(advTask);
        tasks.push(adv); // here pushing the documents to an array
        offset = advTask.every;
    }

提前致谢!

4

1 回答 1

0

bulkSave不是核心 PouchDB API;你在使用插件吗?

另外我要给出的一条建议是,Couchbase Sync Gateway 没有 100% 支持 PouchDB,并且已知在某些情况下存在问题。

另一个建议是在 web worker 中运行 PouchDB 可以防止你的 UI 线程过载,这将解决选项卡不显示的问题。

你有现场测试用例来演示吗?

于 2016-07-29T00:47:38.953 回答