如何在Firefox上关闭缓存?

时间:2008-11-14 10:46:06

标签: javascript firefox caching

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

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

17 个答案:

答案 0 :(得分:224)

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

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

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

browser.cache.offline.enable = false

答案 1 :(得分:60)

Web Developer Toolbar可以选择禁用缓存,这样可以在需要时轻松打开和关闭缓存。

答案 2 :(得分:12)

您是否尝试使用 CTRL - F5 更新页面?

答案 3 :(得分:10)

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

FireBug可以选择在“网络”标签的下拉菜单中停用浏览器缓存。

答案 4 :(得分:8)

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

你可以:

open webdeveloper toolbar open web developer

and pick disable cache

之后它会自己重新加载页面(你打开)并且每一件事都被记录下来,并且每次都会重新发送任何一个新的请求,你可以让web开发人员保持开放状态,始终保持关注并确保它始终打开(检查)。

答案 5 :(得分:7)

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

SRC = “yourJavascriptFile.js?randomNumber = 434534”

每次随机生成randomNumber。

答案 6 :(得分:7)

Firefox 48开发人员工具

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

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

enter image description here

https://stackoverflow.com/a/27397425/895245有类似的内容,但定位发生了一些变化。

答案 7 :(得分:4)

我知道我正在复活一个古老的问题,但我今天试图解决这个问题,并有另一种解决方案。我想测试时切换缓存对我来说并不是真的可以接受,正如其他人提到的那样,硬刷新(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

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

答案 8 :(得分:3)

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

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

network.http.use-cache = false

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

以下是apache Web服务器的example

答案 9 :(得分:3)

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

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

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

答案 10 :(得分:3)

如果您使用FireBug,请在“网络”标签的下拉菜单中选择停用浏览器的缓存。

enter image description here

答案 11 :(得分:1)

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

答案 12 :(得分:1)

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

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

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

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

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

答案 13 :(得分:1)

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

答案 14 :(得分:0)

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

答案 15 :(得分:0)

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

答案 16 :(得分:0)

经过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>

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