ページャの実装変更
今までのページャは良くある ?page=2 みたいな形式でした。これは内部的には offset / limit を使う SQL になります。
変更したページャは /.page/20160509/3 という形式です。20160509 が表示するページ番号、3 がそのページに表示する最大の数です。ページ番号はトップページからのページの場合、日付になっており、内部的には日付ベースの where 句になります。3 は limit です。
これらによって、サーバ側のエントリ表示数のデフォルト設定によらず、URLによって決まる内容が生成されます。よって
- キャッシュ無効化の負荷が減る
- 古い形式だと ?page=xxx なキャッシュは1つエントリが増えるたびに全て無効にしないといけません
- 古いページを表示したときの負荷が減る
- offset / limit はそのページに至るまでの全てのエントリをソートして辿る必要があるので古いページをページ指定すると不穏な空気が流れます
- 検索流入したとき見たいコンテンツがないことが防げる
余談:この日記の構造
このサイトは「日記」なので、日付単位でエントリがまとめられています。「ブログ」の表示に慣れていると違和感があるかもしれませんが、以下のような違いがあります。
- ブログは全エントリを通して新しい順に並ぶ
- 日記は日付単位で新しい順に並び、日付内では古い順に並ぶ
ちょうど、紙に日記を書くときのように、1日の中では連続し、1日単位では独立しているというイメージです。
この挙動は正直初見ではわかりにくいと思うのですが、過去分は1日単位で上から下へ書かれる前提で複数のエントリを構成しているケースがあって、変えるに変えれません。
関連エントリー
- トラックバックを実装しました トラックバックを実装しました といってもサイト内のエントリ間の言及を表示するだけです。いわゆる古代のオープンなトラックバックではありません。...
- 日記の公開を遅延する機能 日記に「遅延公開」みたいな仕組みが欲しいなと考えている (今はない)。一ヶ月ぐらい遅延して公開したい。機能的には指定日公開機能ともいうが、イ...
- Adsense の新しい広告ユニット 最近になって「関連コンテンツ」と「ページ単位の広告」というのが beta になって登場した。サイト最適化と同時にこれらも有効にしてみたりして...
- ✖ 日記(ブログ)内のカテゴリを自動抽出して設定したい。いわゆるクラスタリングだと思うが、うまくできる方法がよくわからない。 動機としては「カテ...
- ✖ なんとなく思いたったので Twitter 使うのをやめてみることにします。ここ最近のこと考えてみると、特に Twitter を使っていて得る...