Comment le travail sur la pagination de la page d'accueil de Reddit?
Question
Reddit utilise un algorithme de décroissance du temps. Cela signifierait l'ordre de tri est soumis à modification. Lorsqu'un utilisateur passe à la page 2, est-il un mécanisme pour les empêcher de voir un poste qui était à la page 1, mais a été cogné vers le bas à la page 2 avant paged plus? Est-ce juste un défaut acceptable de la méthode de tri? Ou sont les deux premières pages mises en cache pour l'utilisateur si cela ne se produit pas?
Note Side: Je crois comprendre que Digg ne peut pas souffrir de ce problème, mais que HackerNews et Reddit peuvent
.La solution
A partir de l'URL suivante vous voyez: http://www.reddit.com/?count = 25 & après = t3_dj7xt
Il apparaît donc clairement la page suivante que la page2 assure commence au poste après t3_dj7xt - quoi que cela traduit à. Cela pourrait être accompli en utilisant les identifiants de sorte que vous passerais après = 188 puis la page suivante démarre à 189 assurant ainsi vous ne voyez pas le même poste si un délai est survenue
Autres conseils
Il utilise peut-être la dernière ID
au lieu de limiter de. Prenez ces deux exemples de SQL:
SELECT * FROM Stories WHERE StoryID>$LastStoryID;
plutôt que:
SELECT * FROM Stories LIMIT 20, 10;