1

我正在嘗試使用pouchdb的bulkSave()函數保存文檔。 但是,保存這些文檔時,它會開始使用同步網關&與主數據庫同步,這樣做會減慢Web應用,當我嘗試導航到不同的選項卡時,該選項卡上不會顯示任何內容。使用pouchdb創建批處理文檔會減慢webapp

下面是如何被創建的文檔的例子:

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; 
    } 

提前感謝!

+0

交叉發佈到論壇:https://forums.couchbase.com/t/creating-batch-documents-using-pouchdb-slows-the-webapp/9267 –

回答

0

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

另外,我想給出的一條建議是,Couchbase Sync Gateway沒有100%支持PouchDB,並且在某些情況下已知存在問題。

另一條建議是,在web worker中運行PouchDB可以防止你的UI線程變得過載,這將解決tab不能顯示的問題。

您是否有現場測試案例來演示?