I modifiziert, um die Rangliste Beispiel zwei Sammlungen zu verwenden:Wie kann ich verwalten, welche Daten mit dem Cache eines Meteor-Clients synchronisiert werden?
Players = new Meteor.Collection("players");
Tasks = new Meteor.Collection("tasks");
Die Spieler Sammlung der 6-Dokumente im Beispiel definiert hat.
> db.players.count()
6
Die Sammlung Aufgaben enthält 48.000 Dokumente.
> db.tasks.count()
48000
Sobald ich den Browser zu öffnen, springt Knoten zu 100% CPU und der Kunde eine der Aufgaben Aufzeichnungen nicht sehen kann.
Ich habe versucht, Abfragekriterien zu definieren, aber das funktioniert nur auf dem Server und hilft nicht auf dem Client.
Players.find({name:"Claude Shannon"}).count();
1
Tasks.find({tid:"t36254"}).count();
0
Ich vermute, dass 48.000 Dokumente zu viel zu synchronisieren ist. Das führt dazu, dass Node bei 100% CPU anklagt und der Client Fehler wie diesen wirft: http://i.imgur.com/zPcHO.png.
Wie die Synchronisierung alles, was ich verhindern und nur bestimmte Dokumente aus der Sammlung abrufen?
Ein Teil der Antwort scheint, die Autopublish-Funktion zu deaktivieren. Autopublish macht einfache Beispiele mit einer Handvoll Dokumenten "einfach", aber mit mehr Daten geht es nicht gut. Verwenden Sie im Projektverzeichnis "meteor remove autopublish". Dann schreibe deine eigenen Publish- und Subscribe-Funktionen. –