RIAFeedとは、半年くらい前から構想を練っている誰かが考えてそうなのにあんまり見かけないサイト構築方法
概念
CMS(Blog,Wikiシステムを含む)を従来のWebサイト構築ツールとしてではなく、コンテンツデータベースに特化した形で利用することによってコンテンツとデザインの切り分けをさらに明確化する考え方。
実装
従来はCMSがテンプレートからHTMLを構築してブラウザに送るという手順でページを表示しているが、これをほぼ全てのCMSに標準で実装されているフィード(RSS,ATOM)出力機能を利用し、主にFlash(HTML5でも可)でそのフィードを取得・解析して適切な位置に挿入することでページを構築し表示する。
CMSが従来持っているページの表示機能はFlashがないブラウザやFlash嫌いな人のためのコンテンツ表示用に使う。
メリット
- コンテンツの管理とデザイン(Flash)の管理が明確に分離されるので役割分担がしやすくなる
- コンテンツとデザインを同一のサーバーで管理する必要がないため、負荷の分散がしやすい
- CMSの標準機能を利用すればレガシーブラウザを意識する必要がほとんどなくなるため、デザイン側は本来のデザインやユーザーエクスペリエンスの提供に集中できる
- CMSを移行してもフィードのURLを変更するだけでよくデザインを作り直す必要がないので移行がしやすい
- Google Ajax Feed APIを利用すればプロクシなどを用意しなくても別ドメイン上のフィードを取得できるのでAjaxのクロスドメイン問題に悩む必要はない、PHPが使えないレンタルサーバーとレンタルblogでもこの構想は実現できる。
問題点
- 一部のレンタルブログなどでは、最新記事のフィードしか取得できないものがある。この構想ではこのタイプのフィードは実質最新記事の表示でしか使えないので制約が大きい
- モダンブラウザとレガシーブラウザの振り分けがあまりスマートではない
振り分け
一見metaで飛ばせば簡単だと思いがちだが、携帯ブラウザを含むJavaScriptサポートがないブラウザのほとんどがmetaによるリダイレクトを(おそらく意図的に)サポートしていないので実質使い物にならない。
結局最初はレガシーブラウザ用のCMSページのリンクと誘導文を表示するようにして、モダンブラウザの場合だけJavaScriptでそのリンクと誘導文を消去するというのが最も無難なのだが、一瞬ではあるが最初の表示から消すまでの間そのリンクと誘導文が表示されるためあまりスマートではない。どうすればいいんだろう・・・?
Flashの場合はFlash未対応やOFFであれば代替テキストを表示することができるのでそれを利用すればいいのだが。
今までのFlash/CMS連携との違い
FlashとCMSを連携してFlashの欠点のひとつである更新のしにくさを改善するという考え方は昔から存在して、そのための方法としてCMSに独自のXMLを出力させてFlashで解析、表示する方法がよく使われている。
独自のXMLを出力させる方法で一番ポピュラーなのがテンプレートを独自のXMLのものに変更することであるが、これをするとHTMLとして出力できなくなり完全にFlash専用という形になってしまうので、特定のカテゴリーにそのテンプレートを適用する場合が多い、具体的な方法は下記URL参照
この方法とフィードを利用する方法を比較した場合のメリットとデメリットは
フィードを利用する場合のメリット
- ほとんどのCMSはフィードを出力する機能を持っているので特別な改造や工夫をする必要が基本的にない
- フィードの形式は共通なのでCMSを移行したとしても取得先のURLさえ変更すればFlash側を変更する必要が基本的にない
フィードを利用する場合のデメリット
- カスタムフィールドなどCMS独自の便利な機能は基本的に使えない(CMSによっては無理やりできなくもないがメリットがなくなる)
- 繰り返しになるが、CMSによってはフィードの出力形式が最新記事のみの場合だと利用に制約が出る
- 2
- 0pt
