Phantasy Garden

色んなブログを渡り歩き、『ソース表示→RDFアドレス取得→XMLデータをゲトー』という行為を繰り返したところ、大まかにブログのデータがどうやって構成されているのか分かってきました。XML文書をXSLT変換して、HTML文書に書き出してるのかな。ブログの仕組みなどを見てみると、どうも静的HTMLファイルを作成しているようです。

このうち、メインページとなるRDFファイル及びそのXSLT変換はできそうです。データベースの代わりにファイル保存にするので扱いには融通が利かない可能性が出てきますが、これができれば一応mixiの日記にも対応させることはできそうです。

分からないのが、静的HTMLファイルを作成しているタイミング。CGIなどのように、ブラウザがアクセスしてきたら作成というオンデマンド方式ではないような気がするんです。仕組みの中に書かれている『サイトの再構築』というタイミングも不明。エントリを追加するたびに再構築されているんでしょうか。それとも静的HTMLの生成はエントリの追加毎に追加された分だけ行い、それとは別に『サイトの再構築』をした際は全てのページが再生成されるようになっているんでしょうか。後者の方が圧倒的に都合がいいように思えるんですが、動作が分からないので確証はもてないです……。XREAの質問掲示板でMovableTypeを初期化だかなんだかの処理をしたときにCPU占有率が著しく増加してしまうという応答があったことからも、『サイトの再構築』はかなりCPUを占有し、かつそれが初回時ということで、後者である可能性が高いともいえますけど。

さらにいうと、コメント機能やトラックバック機能によるページへの書き込みの動作周りも不明なのです。これらも実行されるたびに、該当ページの再生成が行われているんでしょうか。該当ページといっても、この場合は個別エントリページに対してくらいしか……あ、メインページでの該当エントリの『コメント数』や『トラックバック数』の書き換えも必要ですから、これらにも再生成が行われていると考えた方がいいんでしょうか(成瀬氏のブログでは、メインページのコメント数がすぐに反映されないという疑問があったんですけど、これは該当する個別エントリページのみしか生成を行っていないということを考えれば辻褄が合います)。

とするとコメントやトラックバックのデータそのものは、何らかのログとして保存しているわけではなく、静的HTMLファイルを再生成することで直接書き込んでいるという風に考えた方が分かりやすいと思います。ブログのHTMLソースを見ていても、該当するようなデータへのリンクがないですし……。勿論、データベース内にコメントデータ用テーブルを用意して、そこからHTMLファイルを生成していると考えても何らおかしくはないんですが。どちらの形式にしろ、私は最終的にPHPでブログを実現しようと思っているので、必然的に何らかの形でログにとっておいた方が都合がいいんですけどね。

動作仕様の大筋は分かってきたものの、データベースを用いて生成された静的HTMLファイルの構成を『ブログ』というならば、PHPで実現する限り『似非ブログ』というレッテルは剥がせそうもないですね。自宅サーバならともかく、個人的なデータベースをレンタルサーバで使いたいとは思いませんし……(前述のような、処理の重さに起因する悩みもあったりするわけですが)。まぁ外観だけなら区別が付かない程度にはできると思いますし、それ以上のものは別に閲覧者側が求めるものでもないと思うので、挙動の違いなどに悩むのは杞憂なのかもしれません。そもそもレンタルブログサービスでさえ、各サービス毎に記述構造が違ったりしますし。

……そうか。そこで出てくるプログラマの必殺の一言が『仕様です。』というわけですね!

(´A`)ウボァー

Comment

名前:

機械的スパムを防止するための検証です。以下の画像に書かれている文字列(半角英数字)を入力してください。
Captcha Image
認証:

Information

About this website

サイト名『空想庭園』。御巫 悠が自由気ままに運営しているサイトです。役に立たないコラム書きがメインなのかもしれません。

本サイトはクリエイティブ・コモンズ表示4.0 国際ライセンスの下に提供されています。

Twitterアカウント: spherewind1(twitter.com)

Recent Weblog

Recent Comment

Weblog Search

Weblog Category

Friend Links