#筆記 常見分頁 API 使用介紹:Offset & Cursor — SwiftUI 新手入門 6-9

Dong
Dec 1, 2023

--

題目及內容取自於: ChaoCode 頻道

筆記:

> 什麼是分頁 ( pagination )

> Offset 分頁 API 介紹與使用

> Cursor 分頁 API 介紹與使用

> Offset & Cursor 兩者比較

什麼是分頁 ( pagination ) -

一些常見的分頁

像是 Google 的下一頁、 IG 往下拉會載入更多內容

分頁的設計能夠分批取得資料,以減少伺服器以及用戶端的負擔,對於常見的分頁 API 設計有 Offset / Cursor

避免一次性取得太多的資料,對用戶跟伺服器都會造成很大的負擔

Offset 分頁 API 介紹與使用 -

page 跟記得要乘以一頁有多少筆,代表偏移的總數,而「offset 、 skip 」都是直接代表偏移量

常見的 offset 介紹 (要注意 page)

(1) Page

例子1: 這邊取得的就是 0–9 的位置 ( limit 也代表一頁有幾筆 )
例子2: 取得 30–39 的位置

(2) skip 、 offset

例子1: 這邊取得的就是 0–2 的位置 (skip、offset)
例子2: 這邊取得的就是 22–25 的位置 (skip、offset)

(3) 呼叫端的設計

例子1: 像是一次取得一頁
例子2: 記錄每次結束時,最後取得資料的位置

但資料庫若有新增,很有可能取得重複的資料,所以在這裡可以把資料依建立日期排序,新增的放至最後面

(但還是沒辦法解決 交換位置/刪除 的情況)

(依照資料建立的時間排序,就能讓比較新的放到後面)

Cursor 分頁 API 介紹與使用 -

每次伺服器都會回傳一個讓你下次取得資料的 cursor ,下次呼叫時讓伺服器快速找到對應的下一筆資料

Cursor 介紹
例子1: 第一次向伺服器拿取資料 ( 結束時會回傳資料、cursor )

為了避免讓其他人知道資料庫的設計方式,通常 cursor 會加密回傳

加密方式不一定

cursor 呼叫端的設計

以上面的 curso 例子1 示範

Offset & Cursor 兩者比較 -

重點整理

--

--