我發現,每當我做window.location.reload(),我的網頁上的圖像請求被髮送到服務器。圖像被緩存到期日期,因此我認爲他們應該從緩存加載而不是。因爲我從服務器獲得的所有內容都是304,所以我在頁面上有很多圖像,所以我不想在頁面刷新時爲每個圖像請求。頁面重新加載和圖像緩存
我的問題是爲什麼瀏覽器嘗試聯繫服務器而不是從緩存中加載它們?
謝謝!
我發現,每當我做window.location.reload(),我的網頁上的圖像請求被髮送到服務器。圖像被緩存到期日期,因此我認爲他們應該從緩存加載而不是。因爲我從服務器獲得的所有內容都是304,所以我在頁面上有很多圖像,所以我不想在頁面刷新時爲每個圖像請求。頁面重新加載和圖像緩存
我的問題是爲什麼瀏覽器嘗試聯繫服務器而不是從緩存中加載它們?
謝謝!
304 Not Modified
向瀏覽器表明它應該從緩存中重新加載。如果查看發送的字節,從緩存中重新加載時應該小於1kb。
我明白304未修改從緩存讀取,如果它沒有修改,但我只是希望它從緩存中加載,而無需與服務器檢查。 – y62wang
這不是網絡的工作原理。如果是改變內容的問題,那麼你需要使用ajax來獲取頁面的特定區域並改變它們,但是執行'window.location.reload()'是爲了與用戶點擊重新加載時無法區分的所有意圖和目的按鈕在瀏覽器中。 – JaredMcAteer
不應該可以手動將HTTP Expires標頭設置爲不將其他請求發送到服務器,如緩存方法3部分[此處]中所述(http://betterexplained.com/articles/how-to-優化 - 您的站點,與-HTTP緩存/)。 – netfire
要說清楚,當你說圖像被緩存到期日期時,你的意思是你手動設置HTTP Expires標題?大多數服務器默認發送Last-Modified標頭,用於確定圖像是否需要更新(這會導致304 Not Modified結果,如下所述)。 – netfire