Javascript 如何关闭Firefox上的缓存?

Javascript 如何关闭Firefox上的缓存?,javascript,firefox,caching,Javascript,Firefox,Caching,在开发过程中,我必须一直“清除Firefox中的缓存”,以使其使用最新版本的JavaScript文件 是否有某种设置(about:config)可以完全关闭JavaScript文件的缓存?或者,如果没有,对于所有文件?是否尝试使用CTRL-F5更新页面?在Firefox地址栏中输入“about:config”并设置: browser.cache.disk.enable = false browser.cache.memory.enable = false 如果在本地开发,或者使用HTML5的新

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

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

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

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

browser.cache.disk.enable = false
browser.cache.memory.enable = false
如果在本地开发,或者使用HTML5的新清单属性,您可能还必须在about:config中设置以下内容-

browser.cache.offline.enable = false
可以使用CTRL-F5绕过缓存重新加载

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

network.http.use-cache = false
您可以将web服务器设置为发送js文件的无缓存/过期/缓存控制头


以下是apache web服务器的一个示例。

最好的策略是设计站点,为JS文件构建一个唯一的URL,每次发生更改时都会重置该URL。这样,当没有更改时,它会缓存,但当发生任何更改时,它会立即重新加载

您需要根据特定的环境工具进行调整,但是如果您使用的是PHP/Apache,那么这里有一个非常适合您和最终用户的解决方案


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

src=“yourJavascriptFile.js?randomNumber=434534”


每次都随机生成随机数。

有一个禁用缓存的选项,可以在需要时很容易地打开和关闭缓存。

我使用CTRL-SHIFT-DELETE激活隐私功能,允许您一次清除缓存、重置cookie等。您甚至可以对其进行配置,使其仅能执行此操作,而无需弹出对话框要求您确认。

我知道我正在重新提出一个古老的问题,但我今天正试图解决此问题,并找到另一个解决方案。当我想要测试时切换缓存对我来说是不可接受的,正如其他人提到的,硬刷新(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>

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

在浏览了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>


欢迎对上述方法的任何反对意见。安全问题?

上两个解决方案有其优缺点,但它们都是非常好的解决方案

  • 您可能希望也可能不希望您的会话ID像这样嵌入到url中以提高安全性。但在开发中,这并不重要,但如果您忘记删除它呢? 这真的有效吗?您不需要像序列号生成器这样的东西吗(会话中存储的命中计数,或者甚至是如果1那么0,如果0那么1)

  • 添加会话id(或任何sequencer)意味着您需要记住将其添加到不希望缓存的每个资源中。一方面,这更好,因为您可以将会话id包含在您正在积极开发和测试的资源中。另一方面,这意味着您必须这样做,并且您必须记住在生产过程中删除它

  • 修改vhost.conf或.htaccess文件可以很好地实现这一点,而无需记住添加和删除会话id。但缺点是所有js和css资源的性能都会受到影响,如果您有大文件,这会降低您的速度


  • 这两种解决方案看起来都很棒,很优雅,这取决于您的需要。

    没有专门的选项来禁用JavaScript缓存,您必须完全禁用缓存


    在网络选项卡的下拉菜单上有一个选项来禁用浏览器缓存。

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

    在要禁用缓存的同一页面上,请执行以下操作: 仅供参考:我正在使用的版本是30.0

    你可以:


    之后,它将从自己的页面重新加载页面(您已打开),每件事都会被重新缓存,任何进一步的请求也会被重新缓存,您可以让web开发人员始终保持打开状态以保持关注并确保其始终打开(检查)。

    如果您使用FireBug,在“网络”选项卡的下拉菜单上,有一个选项“禁用浏览器缓存”


    在firefox 45中,可以通过更改以下值来设置磁盘缓存选项: browser.cache.disk.enable

    可以在“about:config”页面上设置该值

    在上,我找到了“browser.cache.disk.enable”的以下描述:

    True(默认):使用磁盘缓存,最大容量为browser.cache.disk.capacity中指定的容量
    错误:禁用磁盘缓存(与将browser.cache.disk.capacity设置为0的效果相同)

    Firefox 48开发工具

    仅当“工具箱”打开时,才允许关闭缓存,这非常适合web开发:

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


    有类似的内容,但定位有点变化。

    首先,这很容易做到,例如,通过PHP强制浏览器更新文件
    <script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>