Ⅰ 關於html緩存設置
通過HTTP的META設置expires和cache-control
指令不區分大小寫,並且具有可選參數,可以用令牌或者帶引號的字元串語法。多個指令以逗號分隔。
客戶端可以在HTTP請求中使用的標准 Cache-Control 指令。
Cache-Control: max-stale[=<seconds>]
Cache-Control: min-fresh=<seconds>
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: only-if-cached
伺服器可以在響應中使用的標准 Cache-Control 指令。
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: public
Cache-control: private
Cache-control: proxy-revalidate
Cache-Control: max-age=<seconds>
Cache-control: s-maxage=<seconds>
拓展緩存指令不是HTTP緩存標準的一部分,使用前請注意檢查 兼容性 !
Cache-control: immutable
Cache-control: stale-while-revalidate=<seconds>
Cache-control: stale-if-error=<seconds>
public
表明響應可以被任何對象(包括:發送請求的客戶端,代理伺服器,等等)緩存。
private
表明響應只能被單個用戶緩存,不能作為共享緩存(即代理伺服器不能緩存它)。
no-cache
強制所有緩存了該響應的緩存用戶,在使用已存儲的緩存數據前,發送帶驗證器的請求到原始伺服器
only-if-cached
表明如果緩存存在,只使用緩存,無論原始伺服器數據是否有更新
max-age=<seconds>
設置緩存存儲的最大周期,超過這個時間緩存被認為過期(單位秒)。與Expires相反,時間是相對於請求的時間。
s-maxage=<seconds>
覆蓋max-age 或者 Expires 頭,但是僅適用於共享緩存(比如各個代理),並且私有緩存中它被忽略。
max-stale[=<seconds>]
表明客戶端願意接收一個已經過期的資源。 可選的設置一個時間(單位秒),表示響 應不能超過的過時時間。
min-fresh=<seconds>
表示客戶端希望在指定的時間內獲取最新的響應。
must-revalidate
緩存必須在使用之前驗證舊資源的狀態,並且不可使用過期資源。
proxy-revalidate
與must-revalidate作用相同,但它僅適用於共享緩存(例如代理),並被私有緩存忽略。
immutable
表示響應正文不會隨時間而改變。資源(如果未過期)在伺服器上不發生改變,因此客戶端不應發送重新驗證請求頭(例如If-None-Match或If-Modified-Since)來檢查更新,即使用戶顯式地刷新頁面。在Firefox中,immutable只能被用在 https:// transactions.
發送如下指令可以關閉緩存。此外,可以參考Expires 和 Pragma 標題。
對於應用程序中不會改變的文件,你通常可以在發送響應頭前添加積極緩存。這包括例如由應用程序提供的靜態文件,例如圖像,CSS文件和JavaScript文件。另請參閱Expires標題。
緩存主要兩個策略 強制緩存 ,協商緩存
強制緩存就是設置本地資源html img js等等緩存多長時間 超過時間就去伺服器端取。
協商緩存就是每次都詢問伺服器資源是否已經過期 沒有過期就使用緩存 已經過期就從伺服器上重新取。
緩存流程可以分三個階段 本地緩存,協商緩存 ,緩存失敗
現在的vue項目里都不是這樣緩存的 我個人感覺這是在靜態頁面時的緩存辦法
現在都是webpack打包時通過 hash chunkhash contenthash來決定緩存方式 主要就是在請求的文件名稱後面加一個id 來判斷文件是否已經更新。
Ⅱ 用手機APP緩存的視頻是多個bin文件,請問怎麼合並成完整的視頻
建議在app播放視頻時錄屏。
誰告訴你bin是緩存文件,這個文件格式不是的。
Ⅲ 打包安裝程序怎麼清除緩存
詳細步驟如下:
1、這里以打包GUI界面為例,創建一個簡單的加法計算器,如下圖所示。