1

Ich versuche, Dokumente mit der Funktion bulkSave() von pouchdb zu speichern. Wenn diese Dokumente jedoch gespeichert werden, wird die Synchronisierung mit der Master-Datenbank mit dem Sync-Gateway & gestartet. Dabei wird die Webanwendung langsamer. Wenn ich versuche, zu verschiedenen Tabs zu navigieren, wird auf dieser Registerkarte kein Inhalt angezeigt.Das Erstellen von Stapeldokumenten mit pouchdb verlangsamt die Webanwendung

Unten ist ein Beispiel dafür, wie die Dokumente erstellt werden:

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

Vielen Dank im Voraus!

+0

cross in Foren veröffentlicht: https://forums.couchbase.com/t/creating-batch-documents-using-pouchdb-slows-the-webapp/9267 –

Antwort

0

bulkSave ist kein Kern PouchDB API; verwendest du ein plugin?

Auch ein Ratschlag, den ich geben würde, ist, dass Couchbase Sync Gateway 100% Unterstützung für PouchDB nicht hat und bekannt ist, in einigen Fällen problematisch zu sein.

Ein weiterer Hinweis lautet, dass die Ausführung von PouchDB in einem Web-Worker dazu führen kann, dass der UI-Thread nicht überlastet wird, wodurch das Problem behoben wird, dass Registerkarten nicht angezeigt werden.

Haben Sie einen Live-Testfall zu demonstrieren?

Verwandte Themen