2012-04-07 72 views
2

比方說,我有這樣的img標籤,順序步驟瀏覽器將按照讀取緩存的圖片/內容

<img src = "myimage.jpg" width ="50" height = "50"> 

當瀏覽器第一次遇到這種情況,將下載的圖像文件,並會對其進行渲染。當再次刷新我的頁面時,當瀏覽器遇到這一行時,它會再次發送請求以再次下載文件,或者它將從緩存中讀取。它將採取什麼樣的流程?

另一個問題就在我腦海裏,馬上就是,如果我改變圖像內容而不是圖像名稱(myimage),如果瀏覽器讀取緩存圖像,圖像內容將不會與我的服務器中的內容相同。如何解決這個問題?

對答案不滿意。有人可以告訴我,在這些情況下,流程瀏覽器的所有順序是什麼?

回答

1

即使瀏覽器已將其緩存到服務器(至少根據Firebug中的網絡日誌),瀏覽器仍會向服務器發送圖像請求。據我所知,服務器返回一個「上次下載/修改日期」,如果過了很多時間(通常在3天左右瀏覽器將重新下載緩存內容),可以觸發新的下載。

解決此問題的最簡單方法是向文件名添加版本或發行日期,以便瀏覽器將忽略其緩存。

0

瀏覽器的功能取決於首次與圖像一起返回的HTTP標頭。根據不同的緩存設置爲響應,瀏覽器可以:

  • 再次請求圖像,
  • 要求的形象,如果它已經改變了,或者
  • 用在緩存中的圖像,而不要求服務器
+1

HTTP頭應該如何形成? – deen 2012-04-07 08:56:23

+0

@Ala,https://www.google.com/search?q=http+header+cache+image – gtiwari333 2012-04-07 09:03:50