を指して画像をロードしていると思いますhttp(s)://graph.facebook.com/userid/picture
か?
さて、Facebook はこれらの URL を次のようにキャッシング ヘッダーとともに配信します。
Cache-Control: private, no-cache, no-store, must-revalidate
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Pragma: no-cache
これらは Graph API リダイレクト URL 用です。Facebook はここでのキャッシュを禁止しているため、ブラウザはこれらのリソースを毎回検索する必要があります。これらの URL がヘッダーでリダイレクトする CDN の最終的な画像 URL Location
-これらには、キャッシュに関する次のヘッダーがあります。
Last-Modified: Fri, 01 Jan 2010 00:00:00 GMT
Cache-Control: max-age=1209600
Expires: Thu, 13 Sep 2012 08:07:52 GMT
そのため、事前にアプリで CDN URL を要求してから、これらをアプリの HTML ページで画像 URL として使用することができます。そうすれば、ブラウザーは画像 URL のキャッシュされたバージョンかどうかを確認するために毎回リクエストを行う必要がなくなります。は引き続き有効ですが、キャッシュからすぐに提供できます。
CDN URLは長期間にわたって使用しないでください。変更される可能性があります。しかし、正当な理由なしに意のままに変更されることはないため、より短い時間であれば、おそらく安全に使用できます。ユーザーがプロフィール写真を変更するのはそのような理由かもしれませんが、最長で 1 時間ほどキャッシュすることは、アプリ使用中のユーザー エクスペリエンスを向上させる妥協点になる可能性があります。
ただし、これを行うことの欠点は、CDN プロファイルの写真の URL を取得するために、アプリが最初に各友人の画像に対して API 要求を行う必要があることです。また、多数の友人に対してこれを行うと、時間もかかります。(ただし、バッチ リクエストまたは FQL マルチクエリは、複数ではなく1 つのHTTP リクエストに短縮できる場合があります。)