Pagination
Pagination is splitting a long list of results into smaller pages that a client requests one at a time. Each answer stays small, even when the full list is huge.
25 items in pages of 10
A list of 25 items at a page size of 10 fills two full pages and one short page. The page count is 3.
items = list(range(1, 26))
size = 10
pages = [items[i:i + size] for i in range(0, len(items), size)]
for number, page in enumerate(pages, 1):
print("page", number, "items:", len(page))
print("pages:", len(pages))What each offset page skips
The first page skips nothing and the third page skips 20 items. The skip grows with every page.
size = 10
for page in range(3):
offset = page * size
print("page", page + 1, "skips", offset, "items")The first and last item on each page
Each page starts right after the page before it ends. No item appears twice and none is missed.
items = list(range(1, 26))
size = 10
pages = [items[i:i + size] for i in range(0, len(items), size)]
for number, page in enumerate(pages, 1):
print("page", number, "runs from", page[0], "to", page[-1])Example
items = list(range(1, 26))
size = 10
pages = [items[i:i + size] for i in range(0, len(items), size)]
for number, page in enumerate(pages, 1):
offset = (number - 1) * size
print("page", number, "size:", len(page), "skips:", offset)
print("pages:", len(pages))Key points
- Pagination: Splitting a long list into pages that a client requests one at a time.
- Page size: The number of items sent in one page.
- Offset: The number of items skipped before a page starts.
- Growing skip: Each later offset page must skip more items than the page before it.
- Cursor: A marker for the last item seen, so the next page starts right after it with no growing skip.
In this example, 25 items at a page size of 10 make 3 pages sized 10, 10 and 5. The last page holds 5 items because 25 minus the 20 items on the first two pages leaves 5, and its skip of 20 is the largest.
Note
Pagination keeps each response small, and the client asks for more only when it needs more.
Try it Yourself
Edit the code, then press Run.
Running is simulated
Exercise
A list holds 25 items and the page size is 10. How many items does the last page hold?