Comment dois-je calculer les compensations pour la pagination?

Je suis en train de travailler sur une fonctionnalité de pagination dans un service web que je suis en train d'écrire, mais mon manque de mathématiques insight est en train de me tuer maintenant.
J'ai un couple de touches: totalItems, currentItems, currentPage, totalPages, mais aussi quelques liens pour first, last, previous et next.

En ce moment, je suis en train de faire les calculs suivants:

  • totalItems: nombre de lignes dans la table
  • currentItems: limit paramètre de la requête HTTP
  • currentPage: start paramètre divisé par limit paramètre
  • totalPages: nombre de lignes dans le tableau divisé par limit. (Arrondis, 8.1 page = 9 pages)

Je suppose que ces calculs pour être correct, ce que je suis de mal, c'est la suivante:

  • first: start paramètre est 1 avec limit de la requête HTTP
  • last: il devrait être le premier élément de la dernière page, comment dois-je calculer correctement?
  • previous: il devrait être le premier élément de la page précédente, comment dois-je faire?
  • next: il devrait être le premier élément de la page suivante, comment puis-je faire cela?

Ce que je voudrais poser, c'est: mes calculs sont corrects? Et comment puis-je résoudre trois problèmes avec last, previous et next?

Comment faire u contrôle de la pagination? U passe le décalage dans la chaîne de requête ou le numéro de la page?
La chaîne de requête HTTP ressemble à ceci: api?start=x&limite=y Donc, commencer si le décalage du nombre d'articles, et limite le nombre d'éléments par page.
Ensuite, voir la réponse, mais il est plus facile de travailler avec l'api?page=X si
Je suis d'accord c'est plus facile, malheureusement, je ne peux pas l'utiliser pour ce projet.

OriginalL'auteur jbehrens94 | 2015-01-16