[javascript] 如何關閉Firefox上的緩存?



Answers

Web Developer Toolbar有一個禁用緩存的選項,可以在需要時輕鬆打開和關閉緩存。

Question

在開發過程中,我必須始終在Firefox中“清除緩存”,以便使其使用最新版本的JavaScript文件。

是否有某種設置(about:config)為JavaScript文件徹底關閉緩存? 或者,如果不是,所有文件?




最後兩個解決方案有優點和缺點,但它們都是恕我直言的絕佳解決方案。

  1. 您可能希望或不希望將您的會話ID嵌入到您的url中,以提高安全性。 但在發展中應該不重要,但如果你忘記刪除它,該怎麼辦? 這是否真的有用? 難道你不需要類似序列號生成器的東西(存儲在會話中的命中計數,或者甚至可以是1,然後是0,如果0然後是1)?

  2. 添加會話ID(或任何順序器)意味著您需要記住將其添加到您不希望緩存的每個資源。 一方面,這樣做更好,因為您可以將您的會話ID僅包含在您正在積極開發和測試的資源中。 另一方面,這意味著你必須這樣做,你必須記住刪除生產。

  3. 修改vhost.conf或.htaccess文件很好地訣竅,而不需要記住添加和刪除會話ID。 但缺點是所有js和css資源的性能都會受到影響,如果你有大文件,這會讓你放慢速度。

這兩種看起來都很棒,優雅的解決方案 - 取決於您的需求。




如果你正在使用服務器端代碼,你可以生成一個隨機數,並以下列方式將其附加到src的末尾....

SRC =“yourJavascriptFile.js?randomNumber = 434534”

每次隨機生成隨機數。




在Firefox 45中,可以通過更改browser.cache.disk.enable的值來設置磁盤緩存選項

該值可以在“about:config”頁面上設置。

http://kb.mozillazine.org/About:config_entries#Browser我找到了“browser.cache.disk.enable”的以下描述:

True(默認值):使用磁盤緩存,最大容量為browser.cache.disk.capacity中指定的容量False:禁用磁盤緩存(與將browser.cache.disk.capacity設置為0相同)




在更高版本的Firefox中,如Nightly,有一個名為“禁用緩存”的選項,您可以通過點擊齒輪來找到它。 並且該選項僅適用於當前會話,這意味著當您關閉檢查器並重新啟動它時,如果要禁用捕獲,則必須再次檢查它。




我知道我正在復活一個古老的問題,但我今天正試圖解決這個問題,並有一個替代解決方案。 當我想測試時切換緩存對我來說並不是真的可以接受,而正如其他人提到的那樣,硬刷新(ctrl + shift + r)並不總是有效。

相反,我選擇在我的dev環境中將以下內容放入我的vhost.conf文件(也可以在.htaccess中完成):

<FilesMatch "\.(js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>

在我的開發環境中,這可以確保始終檢索js和css。 此外,它不會影響我瀏覽的其餘部分,並且它也適用於所有瀏覽器,因此使用chrome / ie等進行測試也很容易。

在這裡找到這個片段,還有一些其他方便的apache技巧: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess : http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess

為了確保我的客戶始終能夠看到最新的產品版本,我們在每個更新上增加了js include的查詢字符串,即

jquery.somefile.js?v=0.5

這會強制我的客戶的瀏覽器在看到新的查詢字符串時更新其本地緩存,但會緩存新副本,直到文件再次更新




沒有特定的選項來禁用僅用於JavaScript的緩存,您將不得不完全禁用緩存。

FireBug有一個選項來禁用網絡選項卡的下拉菜單中的瀏覽器緩存。









Related