この同様の質問が好きですが、古すぎます。
SDWebImage ライブラリを使用して、リモート サーバーから画像をダウンロードしています。
リモート イメージは変更される可能性があります (ただし、同じ名前を保持します)。そのため、キャッシュされたイメージを使用する前に、リモート イメージが変更されているかどうかを確認する必要があります。
これどうやってするの?
よろしくお願いします(下手な英語でごめんなさい)
この同様の質問が好きですが、古すぎます。
SDWebImage ライブラリを使用して、リモート サーバーから画像をダウンロードしています。
リモート イメージは変更される可能性があります (ただし、同じ名前を保持します)。そのため、キャッシュされたイメージを使用する前に、リモート イメージが変更されているかどうかを確認する必要があります。
これどうやってするの?
よろしくお願いします(下手な英語でごめんなさい)
私は今夜まさにこの調査を行っています.SDWebImageの現在の実装に基づいて、サーバーへの条件付きGET(etagまたはdate)タイプのリクエストを使用して更新を確認する「組み込み」の方法はないようです.
私が現在検討している方法は、一意の URL を作成することです。これにより、イメージのサーバー バージョンが更新されたときに、ハッシュまたはバージョンのいずれかを最後に追加します。何かのようなもの:
http://example.com/myimage.png?v=2
画像が変更されるとそのバージョン番号が増加しますが、 myimage.png の名前は変更されないため、同じままにしてください。これにより、SDWebImage は新しいイメージをダウンロードし、イメージの新しいバージョン用に新しいキャッシュを構築する必要があります。
そうしないとcacheMaxCacheAge
、SDImageCache.m の定数値を調整して、デフォルトの 1 週間よりも頻繁にチェックする必要があります。
私はこれを使用してこれを行いました:
[SDWebImage sd_setImageWithURL:[NSURL URLWithString:strURL] placeholderImage:[UIImage imageNamed:@"placeholder.png"] options:SDWebImageRefreshCached];
/** * 画像がキャッシュされている場合でも、HTTP 応答キャッシュ コントロールを尊重し、必要に応じてリモート ロケーションから画像を更新します。* ディスク キャッシュは、SDWebImage ではなく NSURLCache によって処理されるため、パフォーマンスがわずかに低下します。* このオプションは、Facebook グラフ API のプロフィール写真など、同じリクエスト URL の背後で変更される画像を処理するのに役立ちます。* キャッシュされた画像が更新されると、完了ブロックがキャッシュされた画像で 1 回呼び出され、最終的な画像で再度呼び出されます。* * このフラグは、埋め込まれたキャッシュ バスティング パラメータで URL を静的にできない場合にのみ使用してください。*/