2016-05-05 4 views

Antwort

2

zuerst die autopublish Paket von der Konsole entfernen:

$ meteor remove autopublish 

Andernfalls werden alle Datensätze werden auf alle Clients und 1M Datensätze veröffentlicht wird sehr langsam sein.

Zweitens erstellen Sie eine Publikation, dass Filter die Sammlung nur die Dokumente zu veröffentlichen, die tatsächlich relevant für den aktuellen Benutzer in der aktuellen Anwendungskontext sind:

Server:

Meteor.publish('myItems',function(){ 
    if (this.userId){ 
    return Items.find({ some query relevant to the user }, 
     {fields: { key1: 1, key2: 1, ... only relevant fields }}); 
    } 
    this.ready(); 
}); 

Auftraggeber:

Meteor.subscribe('myItems'); 

Ihre Abfrage und Liste relevanter Felder kann je nach Benutzerklasse variieren. Sie können auch mehrere Veröffentlichungen auf der gleichen Sammlung für verschiedene Anwendungsfälle haben.

0

Wenn Ihre Sammlung Millionen von Dokumenten enthält, ist es sehr schlecht, wenn die gesamten Daten auf das Front-End geladen werden.

sollten Sie mit Bedacht PAGINATION verwenden, da es Pakete für die Paginierung in Meteor gibt. Aber wenn Sie Paginierung mit einfachen Session-Variablen-Handhabung (die Variable hält die "überspringen Wert, der auf Client und Server zugänglich ist) mit aslagle: reactive-table für eine bessere Präsentation, können Sie dieses Video https://www.youtube.com/watch?v=UivnTM1YA-I ansehen

Nachdem Sie diese Funktion implementiert haben, werden Sie selbst das Gefühl haben, dass das Laden ganzer Daten auf der Benutzeroberfläche nicht möglich ist. Die Seitenumbruch funktioniert ohne Seitenaktualisierung, asynchron und reaktiv.

Verwandte Themen