Cursor Pagination
游標式分頁
01你是不是遇到這個 / THE SYMPTOM
我的列表資料很多要分頁載入,但一邊滑一邊有新資料插進來,結果換頁時出現重複或漏掉某幾筆;或者用「第幾頁」去翻很後面時越來越慢
↑ 如果你點頭了,你要的關鍵字就是 Cursor Pagination。
02這是什麼 / DEFINITION
Cursor Pagination 是用「上一批最後一筆的位置標記(游標,通常是某個唯一且有序的欄位值)」當作下一批的起點,而不是用「第幾頁、跳過幾筆」。它對「資料會即時增減」和「深度翻頁」都更穩、更快。
03什麼時候用 / WHEN TO USE
無限捲動的動態列表(社群動態、留言、即時資料)、資料量大且常變動、或用 offset 翻到深頁效能明顯變差時。API 回傳時通常會附一個 next_cursor。
04怎麼跟 AI 說 / HOW TO ASK
直接複製這句、貼進 Claude Code / Cursor / Copilot / ChatGPT:
把我的列表 API 從 offset 分頁改成 cursor pagination,用 created_at 加 id 當游標,回傳 items 和 next_cursor,前端用 next_cursor 載入下一批
05常見坑 / WATCH OUT
⚠ 別跟 offset/limit(page 第幾頁)分頁搞混:offset 簡單、可隨意跳頁,但資料一變動就會重複/漏資料、且深頁慢。cursor 穩又快,代價是不能任意跳到「第 50 頁」、只能一批接一批。游標欄位必須唯一且穩定排序,單用 created_at 遇到同秒多筆會出包,通常要再加 id 當決勝。
06相關的詞 / RELATED