2012-03-21 9 views
0

ページを読み込んで、このページに3つの画像があるとします。最初に "/images/1.jpgn"、2番目は "/images/2.jpg"、3番目は "/images/1.jpg"に再度参照してください。ページがブラウザに送信されると、ブラウザはサーバーに新しいリクエストを行い、イメージを要求しますか?そして、画像が既に要求されている場合(私の "言いよう"のように、同じ画像を2回持っている)、それを再度要求するか、この画像/ URLが既に読み込まれていることを知り、単にtemp ?ブラウザでイメージをどのように扱い、再ロードせずにイメージを保存するのですか?

私の2番目の質問につながるのは、ファイルをダウンロードしていた場合にダウンロードボックスを開いて、この画像をコンピュータからjavascript/jqueryで保存する方法です。サーバー?

私は本当に明確かどうか分かりませんが、要するに、キャッシュからページのイメージを保存し、サーバーにダウンロードを要求しません。

+0

なぜこれを行い、通常のキャッシュメカニズムでこれを許可しないのですか? –

+0

私のイメージは、イメージを見ることができるように検証を実行するphpファイルによって送信されたもので、既に作成されているときにこれらの検証を実行しないようにしたいと思っています。 – maniak

答えて

2

ブラウザは一般に、HTTP応答ヘッダーによると、可能な限りキャッシュします。つまり、サーバーは最終的にどのブラウザがキャッシュできるか(またはキャッシュする必要があるか)を制御します。したがって、通常はそのようなことを制御するサーバー構成です。

これは、画像が、すべてのコンテンツに限らず適用されます。HTMLページ、CSS、JavaScriptの、など

+0

おかげさまで私が知りたいと思っていたことをありがとう。それがすべてのコンテンツタイプであるかどうかはわかりませんでした。 – maniak

1

ブラウザで処理する必要があります。同じファイルを継続的に再要求することはありません。

2

サーバーが最初に画像を送信する方法はすべて(キャッシュの有無にかかわらず)です。

ブラウザでキャッシングが有効になっている場合、ブラウザは通常からサーバーにファイルを要求する前にキャッシュをチェックします。

+0

画像がPHPファイルで送信されても​​? – maniak

+0

@maniak正しいヘッダーを使用していることを確認してください。 – Neal

+0

もちろん、Dは要求されたリソースの種類に依存していないことを確認したかったのです。 – maniak

1

通常、ブラウザは、2枚の画像が同じソースを持っているので、一度だけ、それをダウンロードしていることがわかります。

ただし、同じ画像が後で再度要求された場合、ブラウザはIf-Not-Modified-Sinceヘッダをサーバに送信します。サーバーは304 Not Modifiedで応答できます。その時点で、ブラウザはローカルコピーを使用して「即時にダウンロード」します。

+0

本当にありがとうと感謝しています。 – maniak