Filter的瀏覽器端快取設定

2021-06-17 21:40:41 字數 801 閱讀 9156

前段時間做了個filter,對jar包中的靜態資源進行處理。做了伺服器端快取,雖然檔案不用每次都提取了,但是還是需要每次通過網路將頁面傳送給瀏覽器。最好是做到瀏覽器端快取。參考了struts2的org.apache.struts2.dispatcher.defaultstaticcontentloader的實現:

calendar cal = calendar.getinstance();

calendar lastmodifiedcal = calendar.getinstance();

long now = cal.gettimeinmillis();

cal.add(calendar.day_of_month, 1);

long expires = cal.gettimeinmillis();

long lastmodifiedmillis = lastmodifiedcal.gettimeinmillis();

if (request.getdateheader("if-modified-since") > ilastmodified) else {

//ie第一次走著,以後只要沒過期,就不發請求了

response.setdateheader("date", now);

response.setdateheader("expires", expires);

response.setdateheader("retry-after", expires);

response.setheader("cache-control", "public&

Nginx設定瀏覽器快取

在location或if段裡,來寫.格式 expires 30s expires 30m expires 2h expires 30d 注意 伺服器的日期要準確,如果伺服器的日期落後於實際日期,可能導致快取失效 另 304 也是一種很好的快取手段 原理是 伺服器響應檔案內容是,同時響應etag標籤 ...

瀏覽器端的快取localStorage應用

伺服器傳輸大量資訊到客戶端 瀏覽器 即使有了伺服器端快取,使用者每次開啟web頁面都需要請求伺服器,傳輸大量資訊,然後渲染。主要存在網路傳輸成本,如果我們將大量的不太會變動的字典資訊儲存於localstorage,就能實現高效能的操作。由於localstorage是永久的,自身沒有過期時間,這對我們...

瀏覽器端的九大快取

http快取是基於http協議的瀏覽器檔案級快取機制。即針對檔案的重複請求情況下,瀏覽器可以根據協議頭判斷從伺服器端請求檔案還是從本地讀取檔案,chrome控制台下的network即展示的是瀏覽器的http檔案級快取。以下是瀏覽器快取的整個機制流程。主要是針對重複的http請求,在有快取的情況下判斷...