Ich versuche, die richtige Methode zum Paginieren von Ergebnissen mit dem Parse SDK für iOS herauszufinden. Das Problem, das ich habe, ist, dass der Inhalt, den ich versuche zu paginieren, das Potenzial hat, sich häufig zu ändern.Seitennummerierung mit dynamischem Inhalt
Zum Beispiel:
Es ist eine App mit einem Bündel von Objekten auf einem Server gespeichert, und die Anforderung, diese Objekte zu erhalten, ist mit neuesten zuerst und paginierte falls sortiert gibt es eine Menge von Objekten. Wenn der Benutzer scrollt, wenn er sich dem letzten Objekt auf der aktuellen Seite nähert, wird die nächste Seite angefordert.
Nehmen wir an, der Benutzer scrollt zu Seite zwei, dann wird ein neues Objekt zur Liste der Objekte hinzugefügt, und der Benutzer scrollt dann eine weitere Seite hoch. Wenn die nächste Seite angefordert wird, erhalten sie ein Duplikat der letzten Nachricht auf der zweiten Seite, und da Seite 0 bereits geladen wurde, wird das neue Objekt nicht angezeigt.
Wie kann so etwas gehandhabt werden?
Wie würde sich die Implementierung ändern, wenn die Objekte zuerst sortiert wurden?
Vielen Dank im Voraus für die Hilfe.
Edit: Anfrage Pseudocode
- (void)fetchObjectsForPage:(NSUInteger)page completion:(void (^)(NSArray *_Nullable objects, PageInfo *_Nullable pageInfo, NSError *_Nullable error))completion{
PFQuery *query = [SomeObject query];
[query orderByAscending:@"updatedAt"];
[query setLimit:50];
[query setSkip:50 * page];
[query findObjectsInBackgroundWithBlock:^{NSArray *_Nullable objects, NSError *_Nullable error){
...
>>> Do error checking and return array along with paging info (total number of objects, page size) or error in completion block.
}];
}
Es ist nicht die Anfrage ich Probleme, mich mit, es herauszufinden, wie man richtig in der Tabelle Paging zu handhaben, wenn ein neues Objekt hinzugefügt wird.
können Sie bitte fügen Sie Ihre Abfrage, die die Anfrage behandeln '? –
Der Code ist für ein Client-Projekt, das ich nicht freigeben darf. Ich werde aber etwas Pseudo-Code aufstellen. – RPK