(RSSで他ブログのタイトルと最新記事の内容を取ってくるものです)
PERLのXML_RSSパッケージを使っているのですが、ブログのURLを10個前後、読み込むだけでも、どうにも重たいです。
主な原因は何でしょうか?
RSSフィーダーじゃなくてRSSフィードリーダー?
PERLじゃなくてPEAR?、のXML_RSSの間違いだと信じて。
どうにも重たいのではなく普通に時間がかかっているんだと思います。
人気サイトは単に表示するだけでも重いですよね。それと同じです。
遅いものを早くするのはむずかしいので、体感的に早く感じるようにするテクニックがいくつかあります。
1. 白紙で待たせない
ブラウザが処理待ちのあいだ、画面が固まっていかにも
「固まってます」という雰囲気を醸し出すのはいらいらしますよね。
onSubmitイベントとかで、GIFアニメーションのインジケータとか
出してあげると、処理してるんだな、という気になれます。
2. ajaxを用いて並列にRSSを読み込ませる
10サイトのRSSを全部読んでから表示するのではそりゃ遅いです。
PHPでマルチスレッドにRSSを読むのは至難の業なので、
各RSSを読むスクリプトを、javascriptでそれぞれ非同期に呼び出して
あげることで並列に実行できます。
URLはちょっと面白そうな文章
リモートで10カ所からフィードを1度に取得するから重いのです(ネットワーク状況にもよるでしょうけど)
定期的にRSSをローカルにダウンロードするようにしておいて(wgetでもPEAR::HTTP_Request&fopenでファイル書き込みでもなんでもいい)
表示する瞬間にRSS解析をすると大幅に早くなると思います.
後はキャッシュをどれ位効かせるかとかチューニングというところになってくると思います.
例えばRSSをあらかじめ取得しているならその瞬間にRSS解析解析し,解析結果をserialize()で保存しておくと毎回解析しなくていいとか.
http://pear.php.net/HTTP_Request
http;//php.net/serialize
http;//php.net/unserialize
コメント(0件)