|
ajax のデモも兼ねて、うちのサイトのトップページの右側のサイドバーにいろいろと 情報を載せていたら、5項目でXMLファイルの合計容量が190KB近くになっていた。 プレーンなデータしか記述できない XML は安全で、再利用性も高そうな気がするし、 Animation.CubeのようにクライアントPCの潤沢なCPU資源を浪費する 富豪プログラミングが許容される時代だと思って、好き勝手やっていたけど、 さすがにトップページの表示が遅いのは快適じゃない。 いくら ajax で async モードを使っていても、Firefox の XML パーサは遅くて、 しかも XML のパース処理中は他の処理がロックしてしまう。ロックは避けたい。 JSON::Syck モジュールで、サーバ側で予め JSON ファイルに変換したものを 利用するように変更してみた。 RSS ファイルと同じデータ構造なら、既存プログラムの変更も少なくて済む。 トップページの表示は10件までなので、JSON 版ではアイテム数も制限して、 URL・ページタイトル・更新日時以外の不要な情報も削除しちゃう。 すると、XML=190KB → JSON=14KB に減った! ・サイト全体の更新情報 46221 http://www.kawa.net/index.rdf 2100 http://www.kawa.net/rss/index.json ・はてなブックマークから注目エントリー10件 47176 http://www.kawa.net/rss/hatena-bookmark.rss 1786 http://www.kawa.net/rss/hatena-bookmark.json ・del.icio.us で最近見てきたページ10件 16005 http://www.kawa.net/rss/recent-delicious.rss 1913 http://www.kawa.net/rss/recent-delicious.json ・flickr にアップロードした写真10枚(うち最新9枚だけ表示) 21152 http://www.kawa.net/rss/recent-flickr.rss 3243 http://www.kawa.net/rss/recent-flickr.json ・ajaxcom の新着コメント 18252 http://www.kawa.net/service/com/ajaxcom-data/recent.xml 2939 http://www.kawa.net/service/com/ajaxcom-data/recent.json ・ajaxtb の新着トラックバック 39112 http://www.kawa.net/service/tb/ajaxtb-data/recent.xml 2341 http://www.kawa.net/service/tb/ajaxtb-data/recent.json XML ファイルは冗長だとよく言うけれど、10倍とは。 実際には、アイテム件数制限や要素削除の効果が大きいから アイテム件数制限や要素削除したバージョンの XML ファイルも作成して 比較してあげた方が公平だけど、ともかく、各 JavaScript 側も JSON 版に 切替えたら XML パーサのロックもなくなり、表示も速く快適になった。 こうも違うと、改めて XML で比較する気がしないです〜♪ XML に固執していた僕が青かった。素直に JSON を使おう。 ※IE7β2、Firefox、Opera、Safari、OmniWeb で動作確認済。 rss2json.plクライアント側 JavaScript では、XML.ParseXML を利用しています。 サーバ側 Perl では、XML::FeedPP を使って JSON に変換しました。 参考に、RSS→JSON 変換のスクリプトを置いておきます。 #!/usr/bin/perl 使い方は、以下の通り。 第1形式は、ローカルの index.rss を読み取って index.json を作成します。 第2形式は、サーバ上の index.rdf を読み取って hoge.json を作成します。 フィードは RSS・RDF・Atom どれでもOKです。 //// え? やっぱり Plagger でも同じこと(RSS→JSON変換)できるの? |
| << 前記事(2006/04/30) | トップへ | 後記事(2006/05/01)>> |
| タイトル (本文) | ブログ名/日時 |
|---|---|
[JSON] xml2json.pl - XMLファイルをJSONに変換するスクリプト
↓は RSS/RDF/Atom 専用のためアイテム件数制限や要素制限の処理が入っていたので、 スクリプトが少し長くなってしまっていたけど、フィードに限らず汎用化して 単に XML ファイルを JSON 変換するだけなら、もっと単純になると思った。 ...続きを見る |
ゆうすけブログ 2006/05/01 13:42 |
rss2json:RSS(XML)からJSONに変換する方法まとめ(てかYahoo!Pipesでいい...
いまさらかもしれないけどね。 ■Perlな方法 ・[JSON] コイツ、速いぞ... ...続きを見る |
creazy photograph 2007/12/17 02:11 |
| 内 容 | ニックネーム/日時 |
|---|---|
|
JSONでRSSリーダつくってみました(... 2007/01/21 12:17 |
.pmで、今度は「webとオークション両方検索」 |
先日1/21にひきつづきJSON(とTr... 2007/02/04 22:57 |
”操作中止”、になるばあいがあるような気がするんですが。 |
googleMapで<b>タグを使うと 2007/02/16 13:06 |
ヤフー株式掲示板9474ゼンリンのNo5041あたりの書込みのurlでした。先程載せてたのは。 |
urlがとちゅうまでしか書かれていません... 2007/02/16 13:09 |
| << 前記事(2006/04/30) | トップへ | 後記事(2006/05/01)>> |