ページングに関しては、前のページ/次のページのみが表示される場合を除き、開始ページと終了ページを計算する必要があり、多くの if-else を使用して実装されているコードをよく見かけます。大量のコードがあり、簡潔ではないため、3 行のコードのみを必要とするアルゴリズムを提供します。
優れたページング アルゴリズムには次の利点があるはずです:
現在のページ番号はできるだけ中央に配置する必要があります。
「ホーム」と「最後」が使用できない場合 (現在最初または最後のページにある)、リンク ボタンの位置が変更されないように、これら 2 つのテキスト グループを非表示にしないでください。
アルゴリズムはシンプルです。次のアルゴリズムには、上記の 1 と 3 の 2 つの利点があります。
PHP:
// $curr_index、現在のページ番号。// $link_count、リンクの数。
// $page_count、現在のデータの総ページ数。
// $start、表示時の開始ページ番号。
// $end、表示時の終了ページ番号。
$start = max(1, $curr_index - intval($link_count/2));
$end = min($start + $link_count - 1, $page_count);
$start = max(1, $end - $link_count + 1);
JavaScript:
start = Math.max(1, curr_index - parseInt(link_count/2));end = Math.min(page_count, start + link_count - 1);
start = Math.max(1, end - link_count + 1);