Ajax 版への置き換え

<< 戻る   トップ >>

実は、すでにこの「鴨乃嘴南蛮」の CMS (Contents Management System) は新しいバージョンに移行している。移行にともない、例のソースファイル喪失事件の余波もあっていろいろと動かない部分もできている。

  1. イメージが表示されない
  2. 日記の月別表示ができない

以上2点が目立つというか、とりあえず気がついている機能喪失である。

イメージが表示されないのは純粋なバグなのだが、迷っているのは日記の月別表示の問題である。

例えば、全ての記事について月ごとのアーカイブを作れ、というのはそれほど悩ましくはない。悩ましくなっているのは、特定のカテゴリ (例えば日記カテゴリ) だけをアーカイブして表示する、というところなのである。

1. データ構造を変更する
もっともプリミティブな解決方法が、カテゴリーツリー構造の変更である。例えば、「2007年3月の日記」というカテゴリーを作って該当記事を分類する、というやりかたである。もっともシンプルであり、カテゴリ内のサブカテゴリおよび記事一覧を送信するサーブレット "xml/MenuList" に手を加える必要がなくなる。ただし、サブカテゴリが増加していく上に、サブカテゴリへの移動を手動で行うか、専用のツールを開発する必要が出てくる。個人的には、サブカテゴリの増加は避けたい。
2. JavaScript 側で処理する
この方法では、XML データに記事の生成日時を含め、データを受け取った JavaScript 側で時系列分類をするというものだ。この場合、だれかが「このカテゴリでは時系列分類をする」ことをトリガーしなくてならない。あるいは、記事数が N 個以上ならば時系列分類を行う、というトリガーでもいいだろう。しかしながら、例えば日記カテゴリの全ての記事が転送させることになるため、「不要なデータ転送」が多すぎる。まあ、画像に比べりゃ大したことないいうもっともな異論もあるが。
3. サーブレット側で処理する
この方法では、あらかじめサーブレット側で時系列分類された仮想ノードを作り、転送する。JavaScript と同様にトリガーの問題は発生する。しかしこれが一番良さそうだ。

結局 3. のサーブレット側の処理に落ち着いた。コードも思いのほかシンプルである。しかしながら、現在のところかなりマズイ処理をしている。問題となっている日記カテゴリのカテゴリIDの値が 2 であることを利用してハードコードで分岐させているのだ。やはりSQL のカテゴリ表に表示方法を設定するべきであろう。


作成: 2007-04-02 21:18:47.0更新: 2007-04-28 09:48:43.0
http://museo-anonimo.jp/nanban/?id=341,http://museo-anonimo.jp/nanban/tr/341