簡體   English   中英

檢查瀏覽器緩存中的 js 文件

[英]Check browser's cache for a js file

如何檢查用戶緩存中的 javascript 文件。 如果他刷新頁面或在一段時間后訪問該站點。 我不需要再次下載那個 js 文件。 站點關閉后 js 文件是否會被清理。

javascript 文件是否被緩存取決於您的 Web 服務器的設置方式、用戶瀏覽器的設置方式以及您的服務器和用戶之間的任何 HTTP 代理服務器的設置方式。 您唯一可以控制的是服務器的設置方式。

如果您想要緩存 javascript 的最佳機會,那么您的服務器需要使用 javascript 文件發送正確的 HTTP 標頭。 具體如何執行取決於您使用的 Web 服務器。

這里有幾個可能有幫助的鏈接:

Apache - http://httpd.apache.org/docs/2.0/mod/mod_expires.html

IIS - http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0fc16fe7-be45-4033-a5aa-d7fda3c993ff.mspx?mfr=true

瀏覽器會自動查看它自己緩存中的內容。 但是,您可以使用多種機制來控制它。

查看各種 HTTP 緩存標頭,例如:

  • 上一次更改
  • 過期
  • 標簽

當涉及到客戶端緩存時,Expires 標頭是其中最關鍵的。 如果您設置了遠期的 Expires 標頭(例如,10 年),瀏覽器將不會(理論上)不會再次向服務器查找該文件。 當然,那么您需要一種在文件內容更改時更改文件名的方法。 大多數人通過向文件路徑添加內部版本號來管理它。

瀏覽器會為您處理緩存。

緩存何時清空部分取決於瀏覽器設置,部分取決於您發送的標頭。 如果您設置了Expires標頭,則瀏覽器在文件過期之前不應重新請求該文件。 閱讀有關HTTP 標頭的信息可能會對您有所幫助。

當 Javascript 文件來自同一域afaik 時,才能檢查 Javascript 文件是否被緩存。

然后你可以像這樣檢查它:

try {
    await fetch("https://YOUR-DOMAIN.org/static/build/js/YOUR-FILE.js",
             {method:'Head',cache:'only-if-cached',mode:'same-origin'});
} catch (error) {
    console.error(error);
}

如果它被緩存,你將得到200返回,否則拋出錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM