Jul 18, 2005
むしろdocument.writeの方を書き換えて遅延ロードを実現する
一つ前のエントリの続き。document.writeを使うデメリットは一個前に書いたとおり、jsファイルを置いてあるサーバーのレスポンスに引きずられてページの描画が遅くなる、ということなんだけど
広告にせよRSS貼り付けにせよ、どれもこれもdocument.writeで表示するHTMLを書き出すものばかりなので、むしろdocument.writeの方を書き換えてみることにした。
ビフォー
http://la.ma.la/misc/js/feed2js_old.html
アフター
http://la.ma.la/misc/js/feed2js.html
Feed2JSというサービスを使っている。
http://jade.mcli.dist.maricopa.edu/feed/
本来は、Scriptタグの挿入位置にRSSやAtomフィードを貼り付けるサービスだ。前者が本来の使い方で、document.writeでHTMLが書き出されて、これをスタイルシートで装飾して使う。上の例では、ヘッダの次の位置に挿入してあるのでスクリプトのロードが完了するまで、フッターが描画できない。
後者は、document.writeを自前の関数で「上書き」して、いったんJavaScriptのオブジェクトに格納してからページに追加している。この方法であればスクリプトのロードが完了する前にページ全体を描画することが出来る。サーバーのレスポンスが遅れても、先にページ全体が描画されているので閲覧には支障が無い。scriptタグを動的に追加してやれば、ページの描画が完了した後からアイテムを追加することもできる。応用すれば完全なRSSリーダーも作れるだろう。
で、あんまり酷使するとサーバー負荷が気になるところだが、ミラーサイトもたくさんあるようなので、接続先を振り分けてやることもできるだろう。
http://jade.mcli.dist.maricopa.edu/feed/index.php?s=mirrors
これは結構無理やりな方法なので、本当はFeed2JSじゃなくてFeed2JSONが欲しいところなんだけども。
つまり何が言いたいかというと色んなサイトがRSSを吐いてくれて、RSSをJSONに変換するようなサービスがあって、そのミラーがたくさんあれば、余っている回線とCPUパワーを分散コンピューティング的に使って、サーバーの負荷を気にすることなくRemixだのなんだのに使うことが出来る。
という話。
Edit this entry...
wikieditish message: Ready to edit this entry.
A quick preview will be rendered here when you click "Preview" button.