PHPでRSSフィーダーを作っています。

(RSSで他ブログのタイトルと最新記事の内容を取ってくるものです)

PERLのXML_RSSパッケージを使っているのですが、ブログのURLを10個前後、読み込むだけでも、どうにも重たいです。
主な原因は何でしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/07/07 03:45:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:ito-yu No.1

回答回数323ベストアンサー獲得回数14

ポイント27pt

RSSフィーダーじゃなくてRSSフィードリーダー?

PERLじゃなくてPEAR?、のXML_RSSの間違いだと信じて。

どうにも重たいのではなく普通に時間がかかっているんだと思います。

人気サイトは単に表示するだけでも重いですよね。それと同じです。

遅いものを早くするのはむずかしいので、体感的に早く感じるようにするテクニックがいくつかあります。

1. 白紙で待たせない

ブラウザが処理待ちのあいだ、画面が固まっていかにも

「固まってます」という雰囲気を醸し出すのはいらいらしますよね。

onSubmitイベントとかで、GIFアニメーションのインジケータとか

出してあげると、処理してるんだな、という気になれます。

2. ajaxを用いて並列にRSSを読み込ませる

10サイトのRSSを全部読んでから表示するのではそりゃ遅いです。

PHPでマルチスレッドにRSSを読むのは至難の業なので、

各RSSを読むスクリプトを、javascriptでそれぞれ非同期に呼び出して

あげることで並列に実行できます。

URLはちょっと面白そうな文章

http://www.arclamp.jp/blog/archives/000788.html

id:yoneto164 No.2

回答回数813ベストアンサー獲得回数94

ポイント27pt

http://q.hatena.ne.jp/1151013335

似たような内容の質問がありましたよ。

id:elf No.3

回答回数76ベストアンサー獲得回数8

ポイント26pt

リモートで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

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません