Web サイトに表示する画像 URL を返す外部 Web サービスを使用しています。たとえば、次のようになります。
$url = get_from_web_service();
echo '<img url="'.$url.'" />';
表示する画像が100個ある場合を除いて、すべて正常に機能しており、Webサービスの呼び出しに時間とリソースがかかります。
//the problem
foreach($items as $item) {
$url = get_from_web_service($item);
echo '<img url="'.$url.'" />';
}
だから今、私は2つのオプションを検討しています:
//Option1: Using php get_file_contents():
foreach($items as $item)
{
echo '<img url="url_to_my_website/get_image.php?id='.$item->id.'" />'
}
get_image.php :
$url = get_from_web_service($id);
header("Content-Type: image/png");
echo file_get_contents($url);
//Option2: Using ajax:
echo '<img scr="dummy_image_or_website_logo" data-id="123" />';
//ajax call to the web service to get the id=123 and get the url then add the src attribute to that image.
考え
- 最初のオプションはより単純に思えますが、サーバーが過負荷になり、すべての画像リクエストに関与する可能性があります。
- 2番目のオプションは、すべてブラウザとWebサービスによって行われるため、サーバーはまったく関与しません。しかし、画像ごとに、画像のURLを取得するための1つのajax呼び出しと、画像を取得するための別の2つの呼び出しを行っています。そのため、読み込み時間が異なり、多数の呼び出しで ajax 呼び出しが失敗する可能性があります。
情報
- そのページには約50枚の画像が表示されます。
- このサービスは、一時に約 100 人のユーザーによって利用されます。
- Web サービスを制御できないため、その機能を変更することはできず、呼び出しごとに複数のイメージ ID を受け入れません。
私の質問
- 検討すべきより良いオプションはありますか?
- そうでない場合、どのオプションに従う必要がありますか? そして最も重要なのは、なぜ私はそれに従う必要があるのですか?
ありがとう