摘要:究其原因是因為也是設置時間來做期限,但是它設置的是到期時間,并且要是格式的時間,最致命的是它的到期時間是依據系統時間來看的,如果系統時間錯誤超過了的到期時間,那么就會請求不到資源。
前記
HTTP緩存是web性能優化的一個常識,目的是當你第二次請求時,將JS、CSS、的請求速度加快,但是html卻不能設置Cache-Control,這是為什么,可以想一想
Cache-Control 如何用response.setHeader("Cache-Control","max-age=315360000")
響應設置響應頭,max-age是設置緩存停留時間,單位為秒,從你接收到那個響應開始計時,一般是設置10年或者1年
功能設置Cache-Control可以在一段時間內不訪問服務器,直接用本地內存或者硬盤中獲取響應,因此極大的加快了訪問速度,關鍵在于不會發送HTTP請求。
更新資源當緩存那么久,那如果緩存資源更新了怎么辦
可以添加查詢參數,如?v=...這樣就可以更新緩存了
還有就是可以在入口html文件處把url變一下,和以前的都不一樣,也可以更新緩存
還有就是在文件名前面生成一串字符,變更文件名,也可以更新緩存
ETag說到ETag就不得不提md5摘要算法,這個算法可以計算一個文件,然后生成一串字符,相同文件內容生成的字符串是一樣的,如果內容不相同生成的字符串就會不一樣,并且內容差別越小,字符串差別越大
如何用response.setHeader("ETag", fileMd5)
fileMd5就是md5生成的字符串
功能設置了ETag后,以后每次訪問服務器都要設置頭If-None-Match來帶上那串字符串,資源未變更,服務器就會返回304,和Cache-Control不同就是,ETag還是會請求,不過資源不變的話,響應體是空的。
更新資源這就非常簡單了,當服務器更換了一個資源,那生成的字符串就會不一樣,當If-None-Match帶著原來的字符串來比較時,發現字符串不一樣,那就會下載新的資源
過時的ExpiresExpires也是一個響應頭,功能和Cache-Control差不多,但是現在逐漸被淘汰了,并且如果在Cache-Control響應頭設置了 "max-age" 或者 "s-max-age" 指令,那么Expires頭會被忽略。
究其原因是因為Expires也是設置時間來做期限,但是它設置的是到期時間,并且要是GMT格式的時間,最致命的是它的到期時間是依據系統時間來看的,如果系統時間錯誤超過了Expires的到期時間,那么就會請求不到資源。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97106.html
摘要:那我們如何優化頁面性能,提高頁面加載速度呢這是本文主要要探討的問題,然而性能優化是個綜合性問題,沒有標準答案,想要面面俱到羅列出來,并非易事。三利用瀏覽器緩存對于應用來說,緩存是提升頁面性能同時減少服務器壓力的利器。 引子 互聯網有一項著名的8秒原則。用戶在訪問Web網頁時,如果時間超過8秒就會感到不耐煩,如果加載需要太長時間,他們就會放棄訪問。大部分用戶希望網頁能在2秒之內就完成加載...
摘要:那我們如何優化頁面性能,提高頁面加載速度呢這是本文主要要探討的問題,然而性能優化是個綜合性問題,沒有標準答案,想要面面俱到羅列出來,并非易事。三利用瀏覽器緩存對于應用來說,緩存是提升頁面性能同時減少服務器壓力的利器。 引子 互聯網有一項著名的8秒原則。用戶在訪問Web網頁時,如果時間超過8秒就會感到不耐煩,如果加載需要太長時間,他們就會放棄訪問。大部分用戶希望網頁能在2秒之內就完成加載...
摘要:那我們如何優化頁面性能,提高頁面加載速度呢這是本文主要要探討的問題,然而性能優化是個綜合性問題,沒有標準答案,想要面面俱到羅列出來,并非易事。三利用瀏覽器緩存對于應用來說,緩存是提升頁面性能同時減少服務器壓力的利器。 引子 互聯網有一項著名的8秒原則。用戶在訪問Web網頁時,如果時間超過8秒就會感到不耐煩,如果加載需要太長時間,他們就會放棄訪問。大部分用戶希望網頁能在2秒之內就完成加載...
閱讀 2306·2021-11-23 10:09
閱讀 2885·2021-10-12 10:11
閱讀 2594·2021-09-29 09:35
閱讀 1337·2019-08-30 15:53
閱讀 2261·2019-08-30 11:15
閱讀 2904·2019-08-29 13:01
閱讀 2290·2019-08-28 18:15
閱讀 3363·2019-08-26 12:13