【ぺーじねーしょん】
ページネーション とは?
最終更新:
💡 情報を小分けにして、ページをめくる
大量の情報をページ単位に分け、順に取得・表示する仕組み。画面ではページ番号や前後のリンクで移動し、APIでは一度に返す件数と続きを取得する位置を指定する。
📌 このページのポイント
ページネーションって、あのページ番号のこと?
番号や「前へ・次へ」で一覧を切り替える仕組みが代表例だよ。100件を10件ずつ表示するなら10ページになる。番号を全部並べる必要はなく、現在のページの近くと前後のリンクだけを見せる形もあるんだ。
無限スクロールとはどう違うの?
検索エンジンには何を用意すればいいの?
APIでもページに分けるの?
オフセット型には注意点があるの?
PostgreSQLのLIMIT 10 OFFSET 50は、先頭50件を飛ばして最大10件を返すよ。十分な行があれば51〜60件目だね。順序を一意に決めるORDER BYが必要で、取得の合間に行が増減すればずれも起こり得る。大きなOFFSETは効率が悪くなる場合もあるんだ。
もっと詳しく知りたい人へ
「もっと見る」ボタンと無限スクロールは同じ?
追加表示のきっかけが違うよ。「もっと見る」はボタンを押したとき、無限スクロールはスクロールに応じて続きを読み込む。検索エンジンがボタンを押すとは限らないので、追加データのページへたどれるURLとリンクも考えるんだ。
カーソルは必ずIDで、データ更新にも完全に安定しているの?
APIの仕様によるよ。たとえばStripeの一覧APIは既存オブジェクトのIDをstarting_afterなどに渡し、作成時刻の逆順の一覧をたどる。カーソルがあるだけで一覧全体の状態が固定されるとは考えず、並び順や更新時の扱いをそのAPIの仕様で確認しよう。
まとめ:ざっくりこれだけ覚えればOK!
「ページネーション」って出てきたら「大量の情報をページ単位に分けて取得・表示する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Pagination」 = ページ分割
💬 ページに分けることを表す英語だよ。画面のページ切り替えだけでなく、APIで一覧を少しずつ返す仕組みにも使うんだ