如何closuresFirefox的caching?
在开发过程中,我必须始终在Firefox中“清除caching”,以便使用最新版本的JavaScript文件。
是否有某种设置(关于:configuration)完全closuresJavaScript文件的caching? 或者,如果不是,所有文件?
在Firefox地址栏中input“about:config”并设置:
browser.cache.disk.enable = false browser.cache.memory.enable = false
如果在本地进行开发,或者使用HTML5的新清单属性,则可能还需要在about:config中设置以下内容:
browser.cache.offline.enable = false
Web Developer Toolbar有一个禁用caching的选项,可以在需要时轻松打开和closurescaching。
你有没有尝试使用CTRL – F5来更新页面?
没有特定的选项来禁用仅用于JavaScript的caching,您将不得不完全禁用caching。
FireBug有一个选项来禁用networking选项卡的下拉菜单中的浏览器caching。
在同一页你想禁用caching做这个:FYI:我工作的版本是30.0
您可以 :
之后,它将重新加载自己的页面(你正在),每一个东西都会被回收,并且每次都会重新发送任何请求,并且你可以让Web开发人员始终保持打开状态,以确保它永远在线(检查) 。
如果你正在使用服务器端代码,你可以生成一个随机数,并以下列方式将其附加到src的末尾。
SRC = “yourJavascriptFile.js?randomNumber = 434534”
随机数是随机生成的。
Firefox 48开发者工具
允许您仅在工具箱处于打开状态时才closurescaching,这对于Web开发非常适用:
- F12
- 右上angular的变速箱
- 向下滚动高级设置
- 检查“禁用caching(当工具箱打开时)”
https://stackoverflow.com/a/27397425/895245有类似的内容,但定位改变了一下,因为。;
我知道我正在复活一个古老的问题,但我正在努力解决这个问题,并有一个替代解决scheme。 当我想testing时切换caching对我来说并不是真的可以接受的,正如其他人提到的那样,硬刷新(ctrl + shift + r)并不总是工作。
相反,我select在我的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等testing也很容易。
在这里find这个片段,还有一些其他方便的apache技巧: http : //www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess
为了确保我的客户端始终能够看到最新的产品版本,我们在每个更新上增加了js include的查询string
jquery.somefile.js?v=0.5
这迫使我的客户的浏览器更新他们的本地caching,当他们看到一个新的查询string,但然后caching新的副本,直到文件再次更新
最好的策略是devise你的站点来为你的JS文件build立一个唯一的URL,每次改变时都会被重置。 这样,它没有变化时会caching,但在发生任何更改时会立即重新加载。
您需要针对特定的环境工具进行调整,但是如果您使用的是PHP / Apache,那么对于您和最终用户来说,这都是一个很好的解决scheme。
http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/
您可以使用CTRL – F5重新加载绕过caching。
您可以在Firefox中设置首选项不使用caching
network.http.use-cache = false
您可以设置您的Web服务器为js文件发送no-cache / Expires / Cache-Control标头。
这里是一个Apache Web服务器的例子 。
如果您使用FireBug,在networking选项卡的下拉菜单中有一个选项可以禁用浏览器的caching。
最后两个解决scheme有优点和缺点,但他们都是恕我直言的伟大的解决scheme。
-
您可能希望或不希望将您的会话IDembedded到您的url中,以提高安全性。 但是在发展中应该不重要,但是如果忘记删除呢? 这也真的有用吗? 难道你不需要像序列号生成器(存储在会话中的命中计数,或者甚至可能只是1然后0,如果0然后1)?
-
添加会话ID(或任何顺序器)意味着您需要记住将其添加到您不希望caching的每个资源。 一方面,这是更好的,因为你可以只包含你正在积极开发和testing的资源的会话ID。 另一方面,这意味着你必须这样做,你必须记住删除生产。
-
修改vhost.conf或.htaccess文件很好地诀窍,而不需要记住添加和删除会话ID。 但是缺点是所有js和css资源的性能都会受到影响,如果你有大文件,那会让你放慢速度。
这两个看起来像伟大,优雅的解决scheme – 取决于您的需求。
我使用CTRL – SHIFT – DELETE激活隐私function,允许您一次性清除caching,重置cookie等。 你甚至可以configuration它,只是这样做,而不是popup一个对话框要求您确认。
在更高版本的Firefox中,比如Nightly,有一个名为“disable cache”的选项,你可以通过点击齿轮来find它。 而且这个选项只能在当前会话中使用,这意味着当你closures检查器并重新启动时,如果你想禁用catch,你必须再次检查它。
经过2个小时浏览各种替代品,这是我的工作。
我的要求是在我的弹簧安全的Web应用程序中禁用js和css文件的caching。 但同时将这些文件caching在一个特定的会话“内”。
每个请求传递一个唯一的ID是build议的方法之一。
这就是我所做的: – 而不是
<script language="javascript" src="js/home.js"></script>
我用了
<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>
任何对上述方法的缺点都是值得欢迎的。 安全问题 ?
在Firefox 45中,可以通过更改browser.cache.disk.enable的值来设置磁盘caching选项
该值可以在“about:config”页面上设置。
在http://kb.mozillazine.org/About:config_entries#Browser我发现“browser.cache.disk.enable”的以下描述:;
True(默认):使用磁盘caching,最大容量为browser.cache.disk.capacity中指定的容量False:禁用磁盘caching(与将browser.cache.disk.capacity设置为0相同)
首先,这可以很容易地完成,例如通过PHP强制浏览器更新基于cachingdate(到期时间)的文件。 如果你只是需要它的实验需求,然后尝试使用CTRL + SHIFT + DEL在Firefox浏览器内一次清除所有的caching。 第三个解决scheme是使用许多Firefox附加组件来清除基于时间线的caching。