但有這樣一些頁面,雖然是動態的但變動頻率較小,且對於同一使用者重複呼叫可能很多(比如說個人管理後台或者新聞首頁面),我們希望像js或者ccs那樣在客戶端快取起來.並且,在我們希望的時候,可以更新客戶端備份的那個頁面,或者介面資料.是否可以做到呢;
事實上,瀏覽器可以快取js,就一定能快取我們的動態頁面;
先研究下js是如何快取起來的:
用firebug看一下js的載入:
先強刷(ctrl+f5)一下 頁面,**js的載入如圖
狀態為200 , 查一下200的含意 :
請求成功(其後是對get和post請求的應答文件。)
這是對js檔案的完整載入;
再直接f5重新整理下 ,**js的載入如圖
狀態為304,再查一下304的含意:
未按預期修改文件。客戶端有緩衝的文件並發出了乙個條件性的請求(一般是提供if-modified-since頭表示客戶只想比指定日期更新的文件)。伺服器告訴客戶,原來緩衝的文件還可以繼續使用。
此時其實並沒有從服務端載入完整檔案而是去讀的本地快取;
從304的描述來看,我們知道,請求依然發出,並由服務端告知瀏覽器,掉用快取;
我們可以總結出兩點:
1.由於服務端只是返回簡單的頭資訊,並沒有生成完整頁面,所以雖然請求依然發出,對於瀏覽器和伺服器來說都更快更輕鬆了;
2.我們可以控制瀏覽器去更新快取
什麼是304快取
我們知道,對於web頁面中的js和ccs,並不會每次都請求完整的內容,有時候會直接利用本地的快取 而對頁面本身,卻往往會去載入完整內容,對於伺服器來說可能每次也要生成完整的內容,並送到客戶端 同樣的,對於一些http介面,每次呼叫也會去 我們知道,對於web頁面中的js 和ccs 但有這樣一些頁面,...
不走304快取
解決 304狀態碼的方法 出現這種情況我確定是由iis快取引起的iis快取一方面能提高伺服器效能,另一方面卻給 帶來嚴重上的更新問題,那我應該如何手動去清理它呢?接下來教大家乙個手動清理iis快取的方法!首先,看一下 http協議,您會發現從伺服器返回的http頭裡面能定義這樣一條命令 cache ...
關於304快取 (轉沫魚的前端世界)
但有這樣一些頁面,雖然是動態的但變動頻率較小,且對於同一使用者重複呼叫可能很多 比如說個人管理後台或者新聞首頁面 我們希望像js或者ccs那樣在客戶端快取起來.並且,在我們希望的時候,可以更新客戶端備份的那個頁面,或者介面資料.是否可以做到呢 事實上,瀏覽器可以快取js,就一定能快取我們的動態頁面 ...