9月になりました。まだ暑い日が続いていますが、何とか生きています。翔市です。さて、8月は結局1個も記事を書かなかったのですが、今月はそれを避けるために早速シリーズ「WEBサイトの構造を考える」の第7回の記事を書いてみようと思います。前回までいったい何を書いてきたのかいよいよ忘れてきましたが、このシリーズの最終目標は「オーバーヘッドを極限まで減らすためにPHP等のサーバサイドスクリプトの使用を可能な限り避けてAjaxとXMLを駆使した高速なブログシステムを構築する」ということだったような気がします(ぉい
ここのところAjaxとXMLTを組み合わせたサイト構築を容易に出来るようにするためのjQueryライブラリの構築をしてきましたが、それがほぼ完成しました。このライブラリについては次に書く記事に任せるとして、このライブラリの完成によって全体像が見えてきました。
大まかな仕様は以下の通り
- 記事データの保存・管理はDBで行う
- 1記事1ファイルのgzipで圧縮されたXMLファイルとする
- ファイル数の増大を防ぐため、ファイル数上限を設定し、ファイル数上限を超えた場合は古い記事のファイルから削除する
- 削除された古い記事をロードする場合はサーバサイドスクリプトを介してDBからXML形式で取得する
- 記事の投稿・編集を行うページはほぼ別アプリケーションとして構築する
- JavascriptのフレームワークはjQueryを使用
- サーバサイドスクリプトはPHPを使用、フレームワークはZend Frameworkを使用
- index.htmlをロード
- JSON形式でロードすべき記事リストをロード
- JSONデータでXMLファイルが指定されていれば、該当するファイルをロード
- JSONデータでDBが指定されていればサーバサイドスクリプトへリクエストを発行、ロード
- ロードしたXMLデータをXSLTで整形し、順次index.htmlへインサート
注意すべき点はDBがXML形式でクエリの結果を返してもらわないと困るので、例えばMySQLを使用する場合だとMySQL5.1以降のバージョンを使用する必要があります。また、まだ解決していないのは"SEO対策"と"Ajaxとhistory"の問題。とくにhistoryの実装が面倒になりそうですね・・・
記事の投稿・編集を行うアプリケーションはFrameworkを用いた、ユーザ管理・認証機能つきの"ありがちな"アプリケーションになると思うので特に変わったことはありません。いちおう投稿時の順序を書くと
- 記事のPOSTを受ける
- DBへ登録
- XMLファイルを生成
- ファイル上限を超えている場合は一番古いファイルを削除
という感じに作るべき全体像がかなり見えてきました。
次の記事では今回作成したjQueryのAjaxsltライブラリの紹介をします。

|