2

この同様の質問が好きですが、古すぎます。

SDWebImage ライブラリを使用して、リモート サーバーから画像をダウンロードしています。

リモート イメージは変更される可能性があります (ただし、同じ名前を保持します)。そのため、キャッシュされたイメージを使用する前に、リモート イメージが変更されているかどうかを確認する必要があります。

これどうやってするの?

よろしくお願いします(下手な英語でごめんなさい)

4

2 に答える 2

1

私は今夜​​まさにこの調査を行っています.SDWebImageの現在の実装に基づいて、サーバーへの条件付きGET(etagまたはdate)タイプのリクエストを使用して更新を確認する「組み込み」の方法はないようです.

私が現在検討している方法は、一意の URL を作成することです。これにより、イメージのサーバー バージョンが更新されたときに、ハッシュまたはバージョンのいずれかを最後に追加します。何かのようなもの:

http://example.com/myimage.png?v=2

画像が変更されるとそのバージョン番号が増加しますが、 myimage.png の名前は変更されないため、同じままにしてください。これにより、SDWebImage は新しいイメージをダウンロードし、イメージの新しいバージョン用に新しいキャッシュを構築する必要があります。

そうしないとcacheMaxCacheAge、SDImageCache.m の定数値を調整して、デフォルトの 1 週間よりも頻繁にチェックする必要があります。

于 2012-12-03T04:12:38.580 に答える
1

私はこれを使用してこれを行いました:

[SDWebImage sd_setImageWithURL:[NSURL URLWithString:strURL] placeholderImage:[UIImage imageNamed:@"placeholder.png"] options:SDWebImageRefreshCached];

/** * 画像がキャッシュされている場合でも、HTTP 応答キャッシュ コントロールを尊重し、必要に応じてリモート ロケーションから画像を更新します。* ディスク キャッシュは、SDWebImage ではなく NSURLCache によって処理されるため、パフォーマンスがわずかに低下します。* このオプションは、Facebook グラフ API のプロフィール写真など、同じリクエスト URL の背後で変更される画像を処理するのに役立ちます。* キャッシュされた画像が更新されると、完了ブロックがキャッシュされた画像で 1 回呼び出され、最終的な画像で再度呼び出されます。* * このフラグは、埋め込まれたキャッシュ バスティング パラメータで URL を静的にできない場合にのみ使用してください。*/

于 2015-01-29T22:08:13.373 に答える