2012-06-20 28 views
1

我一直在閱讀關於人們用瀏覽器緩存舊版本的JavaScript文件時遇到的問題,而不是在發生更改時下載新版本的問題。但是,每次我對js文件進行更改時,關閉瀏覽器並打開它(甚至刷新頁面),就會反映更改。我已經在IE9,FF13,Chrome18和Safari 5中試過了。較新的瀏覽器版本是否有方法確定是否對.js文件進行了更改?

較新的瀏覽器版本是否有方法確定是否對.js文件進行了更改,然後用緩存中的新內容替換舊的?

+1

把它放入足夠長的字母數以滿足評論過濾器,沒有。它始終是一個緩存管理問題。 – Pointy

回答

1

這與瀏覽器或瀏覽器版本無關。這與緩存指令有關。

如果您的服務器正在輸出標頭,允許客戶端緩存資源,那麼它將被緩存。如果你的服務器輸出頭指示客戶端不緩存,那麼它通常不會被緩存。

參見:http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

瀏覽器檢測,如果他們需要,如果服務器指定Must-Revalidate加載新的版本。

https://stackoverflow.com/a/8729854/362536

+0

我把它作爲默認的apache2(我使用的)是不允許客戶端緩存它? – user784637

+1

@ user784637,Apache2有很多配置文件在浮動,很難說你的特定「默認」選項是什麼。 (通常,配置由程序包維護人員爲您的特定發行版設置。)最簡單的檢查方法是打開瀏覽器的開發人員工具並檢查返回的JS文件的標題。您也可以使用一個工具,如Fiddler或Wireshark。 – Brad

+1

@ user784637,看看這個:http://metaskills.net/2006/02/19/how-to-control-browser-caching-with-apache-2/ – Brad

相關問題