Cursor trỏ vào một vị trí xác định trong tập kết quả, nên record mới chèn vào không làm lệch trang như phân trang theo số trang.
Đổi lại, nhảy thẳng tới trang thứ mười là việc khó.
graphql
query { posts(first: 20, after: "Y3Vyc29yOjIw") {
edges { cursor node { id title } }
pageInfo { hasNextPage endCursor }
} }Quy ước phổ biến là Connection pattern: field trả về một object chứa edges, mỗi edge có cursor và node, cộng pageInfo cho biết còn trang sau hay không. Mẫu này trông rườm rà nhưng cho chỗ đặt dữ liệu của quan hệ và một shape chuẩn để client library tự nối thêm trang.
Một lưu ý về hiệu năng: trả về tổng số record thường tốn kém vì phải đếm toàn bộ. Nhiều đội chọn không trả tổng số hoặc trả con số ước lượng, và thiết kế giao diện theo hướng cuộn vô hạn.