it-swarm.dev

如何在Firefox上关闭缓存?

在开发过程中,我必须始终在Firefox中“清除缓存”,以使其使用最新版本的JavaScript文件。

是否有某种设置(about:config)完全关闭JavaScript文件的缓存?或者,如果没有,对于所有文件?

138
Thilo

在Firefox地址栏中输入“about:config”并设置:

browser.cache.disk.enable = false
browser.cache.memory.enable = false

如果在本地开发,或使用HTML5的新清单属性,您可能还需要在about:config中设置以下内容:

browser.cache.offline.enable = false
224
tst

Web Developer Toolbar 有一个禁用缓存的选项,可以在需要时轻松打开和关闭缓存。

60
philnash

你试过用吗? CTRL - F5 更新页面?

12
some

没有特定的选项来禁用JavaScript的缓存,您必须完全禁用缓存。

FireBug 可以选择在网络选项卡的下拉菜单中禁用浏览器缓存。

10
kynan

在同一页面上,您要禁用缓存执行此操作:仅供参考:我正在处理的版本是30.0

您可以 :

open webdeveloper toolbaropen web developer

and pick disable cache

在那之后它将从它自己重新加载页面(你在上)并且每一件事都被记录下来并且每次都会重新发送任何信息请求并且你可以保持web开发人员始终保持开放以便始终保持关注并确保它始终打开(检查) 。

8
shareef

Firefox 48开发人员工具

允许您仅在工具箱打开时关闭缓存,这非常适合Web开发:

  • F12
  • 右上角的变速箱
  • 向下滚动顶部高级设置
  • 选中“禁用缓存(工具箱打开时)”

enter image description here 

https://stackoverflow.com/a/27397425/895245 有类似的内容,但定位有点改变了。

如果您正在使用服务器端代码,您可以生成一个随机数,并以下列方式将其附加到src的末尾....

sRC = “yourJavascriptFile.js?randomNumber = 434534”

每次随机生成randomNumber。

7
RekrowYnapmoc

我知道我正在复活一个古老的问题,但我今天试图解决这个问题,并有一个替代解决方案。我想测试时切换缓存对我来说并不是真的可以接受,正如其他人提到的那样,硬刷新(ctrl + shift + r)并不总是有效。

相反,我选择在我的开发环境中将以下内容放在我的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

为了确保我的客户始终在生产中看到最新版本,我们在每次更新的js include上增加查询字符串,即

jquery.somefile.js?v=0.5

这会强制我的客户端浏览器在看到新的查询字符串时更新其本地缓存,但随后会缓存新副本,直到文件再次更新为止

4
Kevin Jhangiani

如果您使用FireBug,在网络选项卡的下拉菜单中有一个选项可以禁用浏览器的缓存。

enter image description here 

3
Moes

您可以使用 CTRL - F5 重新加载绕过缓存。

您可以在firefox中设置首选项以不使用缓存

network.http.use-cache = false

您可以设置Web服务器以发送js文件的no-cache/Expires/Cache-Control标头。

这是一个 示例 用于Apache Web服务器。

3
Pat

最佳策略是设计您的站点以构建JS文件的唯一URL,每次发生更改时都会重置。这样它就会在没有变化时缓存,但在发生任何变化时立即重新加载。

您需要针对特定​​的环境工具进行调整,但如果您使用的是PHP/Apache,这对您和最终用户来说都是一个很好的解决方案。

http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/

3
scunliffe

发布的最后两个解决方案有利有弊,但它们都是恕我直言的绝佳解决方案。

  1. 您可能希望也可能不希望将您的会话ID嵌入到您的网址中,以获得更严格的安全性。但是在开发中这应该不重要,但是如果你忘记删除呢?这真的有用吗?难道你不需要像序列号生成器这样的东西(在会话中存储命中计数,或者甚至只有1然后0,如果0然后1)?

  2. 添加会话ID(或任何序列器)意味着您需要记住将其添加到您不希望缓存的每个资源。一方面,这是更好的,因为您可以只包含您正在积极开发和测试的资源的会话ID。另一方面,这意味着你必须这样做,你必须记住删除它用于生产。

  3. 修改vhost.conf或.htaccess文件很有效,无需记住添加和删除会话ID。但缺点是所有js和css资源的性能都会受到影响,如果你有大文件,这会降低你的速度。

两者看起来都很棒,优雅的解决方案 - 取决于您的需求。

1
meem

我用 CTRL - SHIFT - DELETE 它可以激活隐私功能,允许您一次清除缓存,重置cookie等。您甚至可以对其进行配置,而不是弹出一个要求您确认的对话框。

1
Mr. Shiny and New 安宇

在较高版本的Firefox中,如Nightly,有一个名为“禁用缓存”的选项,您可以通过单击齿轮找到它。并且该选项仅适用于当前会话,这意味着当您关闭检查器并重新启动它时,如果要禁用catch,则必须再次检查它。

1
jiyinyiyong

经过2个小时的浏览以寻找各种替代方案,这对我有用。

我的要求是在我的spring安全Web应用程序中禁用缓存js和css文件。但同时在特定会话中“缓存”这些文件。

在每个请求中传递唯一ID是建议的方法之一。

这就是我所做的: - 而不是

<script language="javascript" src="js/home.js"></script>

我用了

<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>

欢迎任何上述方法的缺点。安全问题 ?

0
Darshan

在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的效果相同)

0
Daniel

首先,这可以很容易地完成,例如,通过PHP强制浏览器根据缓存日期(到期时间)更新文件。如果您只是需要它来满足实验需求,那么尝试使用ctrl + shift + del在Firefox浏览器中立即清除所有缓存。第三种解决方案是使用许多插件来退出Firefox以根据时间线清除缓存。

0
Amir Ghorbani