Wie würdest du pinterest wie eine Seite mit meteor.js bauen?

8

Ich hoffe, dass ihr alle das pintereste Stillayout und sein Verhalten kennt:

  • Wir haben eine Sammlung von vielen (sagen wir 1000) Produkten
  • beim Laden der Seite zeigen wir nur eine kleine Teilmenge dieser Sammlung an (d. h. 20 erste Produkte)
  • Wenn der Benutzer nach unten scrollt und den unteren Rand der Seite erreicht, rendern wir die nächsten 20 Produkte
  • Seite wird von vielen Kunden angesehen, und jeder hat seinen eigenen Satz von angezeigten Produkten

Bonusaufgabe:

  • Wenn die Produktsammlung neue Artikel erhält, werden diese oben auf der Seite angezeigt (als erste Artikel in der angezeigten Produktliste)

Ich denke wie man diese Logik auf Meteor Weise programmiert . Lassen Sie uns den Code der Benutzeroberfläche überspringen, ich bin nur an Geschäftslogik interessiert.

Ich denke über die ProductsDisplayed-Sammlung als Helfer nach, die leer ist und beim Laden der Seite mit 20 Produkten bestückt ist. Wenn der Scrollpunkt erreicht ist, füge ich 20 weitere Produkte aus der ursprünglichen Produktsammlung hinzu.

Probleme:

  • wie Sie verschiedene ProductsDisplayed Sammlungen zwischen Clients haben,
  • wie um die nächsten 20 Produkte aus der Produktkollektion zu fragen, und nicht die vorherigen erhalten

Aber vielleicht ist die ganze Vorstellung von ProductsDisplay falsch. Ich würde gerne wissen, was du denkst!

Aktualisieren!
Ich änderte den Ansatz, nur die Produktsammlung zu verwenden.

Server:

%Vor%

Kunde:

%Vor%

und Erhöhung um 20 Session 'productsDisplayedNumber', wenn der Scrollpunkt erreicht ist. Bei der automatischen Anmeldung wird jedoch die gesamte Vorlage erneut gerendert, nicht nur die neuen Elemente. Irgendwelche Ideen?

    
krzysu 05.02.2013, 11:15
quelle

1 Antwort

5
___ tag123pinterest ___ Pinterest ist eine virtuelle Pinnwand, mit der Sie Dinge organisieren und teilen können, die Sie im Internet finden. Sie können auf Pinnwänden zugreifen, die von anderen Personen erstellt wurden, um neue Dinge zu entdecken und sich von Menschen inspirieren lassen, die Ihre Interessen teilen. ___ tag123meteor ___ Meteor ist eine modulare Plattform für die Entwicklung von Web- und mobilen Anwendungen in JavaScript auf Basis der NodeJS-Plattform. ___ answer 14755760 ___

Ich habe dieses Problem endlich gelöst. Die Lösung besteht darin, nur eine Client-Sammlung zu haben:

%Vor%

Wenn der Scrollpunkt erreicht ist, fragen Sie den Server nach den nächsten N ( limitNo ) Produkten

%Vor%

skipNo wird um N inkrementiert, um immer nach dem nächsten Datensatz zu fragen. Und auf Serverseite habe ich:

%Vor%

diese Meteor-Methode gibt mir die nächste Reihe von Produkten aus der Produktsammlung zurück.

Natürlich zeigt die Ansichtsschablone ProductsDisponed collection content:

an %Vor%

Also, was denkst du?

    
___ qstnhdr ___ Wie würdest du pinterest wie eine Seite mit meteor.js bauen? ___ qstntxt ___

Ich hoffe, dass ihr alle das pintereste Stillayout und sein Verhalten kennt:

  • Wir haben eine Sammlung von vielen (sagen wir 1000) Produkten
  • beim Laden der Seite zeigen wir nur eine kleine Teilmenge dieser Sammlung an (d. h. 20 erste Produkte)
  • Wenn der Benutzer nach unten scrollt und den unteren Rand der Seite erreicht, rendern wir die nächsten 20 Produkte
  • Seite wird von vielen Kunden angesehen, und jeder hat seinen eigenen Satz von angezeigten Produkten

Bonusaufgabe:

  • Wenn die Produktsammlung neue Artikel erhält, werden diese oben auf der Seite angezeigt (als erste Artikel in der angezeigten Produktliste)

Ich denke wie man diese Logik auf Meteor Weise programmiert . Lassen Sie uns den Code der Benutzeroberfläche überspringen, ich bin nur an Geschäftslogik interessiert.

Ich denke über die ProductsDisplayed-Sammlung als Helfer nach, die leer ist und beim Laden der Seite mit 20 Produkten bestückt ist. Wenn der Scrollpunkt erreicht ist, füge ich 20 weitere Produkte aus der ursprünglichen Produktsammlung hinzu.

Probleme:

  • wie Sie verschiedene ProductsDisplayed Sammlungen zwischen Clients haben,
  • wie um die nächsten 20 Produkte aus der Produktkollektion zu fragen, und nicht die vorherigen erhalten

Aber vielleicht ist die ganze Vorstellung von ProductsDisplay falsch. Ich würde gerne wissen, was du denkst!

Aktualisieren!
Ich änderte den Ansatz, nur die Produktsammlung zu verwenden.

Server:

%Vor%

Kunde:

%Vor%

und Erhöhung um 20 Session 'productsDisplayedNumber', wenn der Scrollpunkt erreicht ist. Bei der automatischen Anmeldung wird jedoch die gesamte Vorlage erneut gerendert, nicht nur die neuen Elemente. Irgendwelche Ideen?

    
___
krzysu 07.02.2013 16:16
quelle

Tags und Links