XMLHTTPRequest の制限として、JavaScript が実行されているコンテンツの属するドメインと同じリソースにしかアクセスできないというのがある。
セキュリティ上必要な措置ではあるけれど、ホームページ(自社ドメイン)とブログ(ブログASPのドメイン)が別のドメインになっているというケースは多々あると思う。ホームページからブログにリンクを張るだけではイマドキじゃない。
そこで、こんな考えたのがこんなアイデア。UNIX サーバ上でPerlが使えることが前提。
- 初回アクセス時、HTTP経由でRSS/Atomをブログページから GET。ローカル(/var/tmp など)にキャッシュしておく。
- GETした RSS/Atom を解析。QUERY_STRINGによって返すHTMLをスイッチ
- HTTP Request 発行元のJSは受け取ったHTMLを document.write()
- 2回目アクセス以降は1.でキャッシュしたファイルの更新時刻と現在時刻を比較し、
一定時間以内なら、キャッシュを読み込んで2.以降の動作。タイムアウトしていたら、1.から。
キャッシュをロックする必要があるが、ファイルシステムの排他的ロックを使えばよい。
なんとなく ajax ML で議論されていたような気がするが、車輪の再発明でもいいのでやってみる価値はある。コードは長くてA4一枚くらいだろう。