ホームページ  >  記事  >  ウェブフロントエンド  >  Web ページ上の画像をキャッシュする方法_html/css_WEB-ITnose

Web ページ上の画像をキャッシュする方法_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:33:001570ブラウズ

Web ページ上の画像は、サーバー アクションを呼び出すことによってデータ ストリームの形式でページに書き込まれます。
ページに入るたびに画像が再度ダウンロードされます
方法はありますか?画像を直接キャッシュするには

ディスカッションへの返信 (解決策)

http://www.cnblogs.com/yuyii/archive/2008/10/16 /1312238.html

キャッシュ コントロールを設定します


を追加しました

画像は引き続き読み込まれます

画像はアクションリクエストです

バイナリストリーム まだキャッシュできますか?それは聞いたことがない。ページレベルのキャッシュは、特定のリソース (xx. 拡張子) 用です。



このキャッシュはサーバー側で実装され、サーバーが画像を書き出すと、応答によって Last-Modified パラメーターの値が増加します。キャッシュでは、ページが URL を再度リクエストすると、リクエスト パラメーターは if-modified-since パラメーター情報を運び、パラメーター情報を決定してブラウザーに戻り、キャッシュされたデータの使用を通知します

以下はその一部ですコード。

//キャッシュされたファイルの最終変更時刻を取得します (リクエスト時にこのパラメーターを持つのはキャッシュされたファイルのみです)
String lastUpdateTime = ServletActionContext.getRequest().getHeader("if-modified-since");
//パラメーターが存在する場合, キャッシュされたデータを使用するようにブラウザーに指示します
if(lastUpdateTime!=null){
//有効期限を決定する必要がある場合は、ファイルの最終変更時刻と現在の時刻を比較して決定します
//status:304,キャッシュされたデータを使用します
ServletActionContext.getResponse().setStatus(HttpServletResponse.SC_NOT_MODIFIED);
return null;

HttpServletResponse response=ServletActionContext.getResponse();
is = new BufferedInputStream(new FileInputStream(file)) 4) ;
response.setContentType("application/x-download"); //返されるファイルの種類を設定します
response.addHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(uploadFile.getSaveFileName()) "UTF-8 "));
//デザイン キャッシュはプライベート キャッシュであり、ユーザー間で共有されません
response.setHeader("Cache-Control", "private");
//重要! 、ブラウザーは、応答内でこのフィールドを見つけた場合にのみデータをキャッシュに保存します (最終更新時刻をマークします)
response.setDateHeader("Last-Modified",new Date().getTime());

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。