仅在Firefox和Chrome中强制刷新JavaScript文件


64

我只想从网络浏览器(Firefox和Chrome)中清除JavaScript文件。我正在进行JavaScript调试,很烦人的是,只要更改JS文件,我的JS就不会得到更新。我现在唯一能做的就是清除cookie,但是这样做会清除所有浏览历史记录。

如何清除/刷新已加载到浏览器中的JavaScript文件而不清除其他文件?

Answers:


42

我自己这样做是为了发展。我用Ctrl+ F5。这就像强制刷新。这将刷新页面,包括重新下载所有引用的JavaScript文件或CSS文件(即使已缓存)。

它不会清除其他任何内容,例如您的浏览历史记录。

但是请注意,尽管我知道这可以在Firefox和Internet Explorer中使用,但是我不确定Ctrl+ F5在Chrome中是否可以使用相同的方式。

另外,iegik说:

在某些浏览器上,您可以使用` Ctrl+ Shift+ R来完成相同的任务。


大!我将接受的答案更改为您的答案,因为您的答案更简单
Graviton

我对此表示感谢。但是请注意,尽管我知道这在Firefox和IE中都可以使用,但是我不确定CTRL-F5是否在Chrome中以相同的方式工作。
09年

2
与Win7上的Chrome 21 beta相同-使用ctrl-f5刷新页面不会重新请求JS文件(我正在使用Charles进行双重验证)。
Artem Russakovskii 2012年

1
实际上,根据设计,chrome会将第一个ctrl + f5视作正常刷新,而在短时间内随后的ctrl + f5(然后是一个)将强制重新加载所有源
Zeela

1
对于Chrome,请按F12,然后右键单击“重新加载”按钮。superuser.com/questions/220179/...
塞斯·蒂默曼

50

使用Chrome:

从Chrome 15开始,打开开发人员工具,点击屏幕左下方的齿轮,然后选中禁用缓存复选框。

停用Chrome 15及更高版本中的缓存

这样,您将确保始终从服务器重新加载资源,而不必手动清除缓存,这也可能会删除不相关站点的缓存数据。


感谢您的提示-我刚刚检查了该选项,Chrome 14中也提供了该选项。
钥匙圈2011年

天才!真是个好发现。
Randomblue 2011年

辉煌,我一直在寻找。
Artem Russakovskii 2012年

...并且在完成后不要忘记取消选中该选项。
HalilÖzgür'12

在第二个采取,它看起来像这些选项仅活跃在devtools可见:twitter.com/ChromiumDev/status/227356682890670080(从stackoverflow.com/a/7000899/372654
哈利勒Özgür的

8

我不同意@ 7wp。由于您的某些最终用户不熟悉Ctrl+ F5功能,有些甚至不了解浏览器之间的差异,甚至不知道其他浏览器的存在(例如,生产者),因此您应强制浏览器下载以下版本的新副本: JS / CSS文件。

最好的解决方案是在.js / .css文件名的末尾添加时间戳,或者添加svn版本,这也是一个好主意。

<script src="js/myfile.js?t=<?=time()?>" type="text/javascript"></script>

5

您可能想尝试只清除缓存,而不是整个浏览,历史记录,Cookie,密码,已保存的表单数据以及其他内容(默认设置)。

在Firefox 3.5中,转到

工具»清除最近的历史记录...

然后,在选择“立即清除”之前,确保仅选择“高速缓存”。

在Chrome中(当我使用开发版本时,不知道您使用的是哪个特定版本),请转到

扳手图标(工具)»选项»个人资料选项卡»清除浏览数据...

同样,请确保仅选中“清空缓存”。

另外,您可以尝试在Firefox或Chrome的隐身窗口中打开新的私人会话;在浏览时,它们都不应该缓存您自动下载并处理的任何文件(包括.JS文件)。


隐身模式可能是适用于Chrome的方法。
mdoar

1

出于与您相同的原因,我一直在一个正在工作的网站上使用一些小技巧。我进行了一些小的更改,并由JavaScript代码加载了JavaScript代码,并希望确保始终使用当前(非缓存的)脚本。

尝试使要加载到JavaScript文件中的JavaScript代码...简单地放在<?php ?>开头,然后放在.php的扩展名上。

var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");

// The Date added to the file doesn't effect the results but
// helps Internet Explorer be sure to refresh the data and
// not use cache

var d = new Date();

var t = d.getTime();

fileref.setAttribute("src", filename + ".php?date=" + t);

fileref.setAttribute("id", filename);

由于名称更改,Internet Explorer认为它是一个新文件;)


1
不需要将名称更改为“ .php”。如果您输入'filename.js?t ='+ t,则结果相同。您也可以使用'.css'。我们所有的生产系统都使用此技巧来证明客户使用了正确的内容文件。
Leonel Martins 2009年

1
需要注意的是,我们倾向于使用SVN版本号代替日期/时间。这样,我们可以获得缓存的好处,并且仅在实际提交时刷新。
Groo

非常感谢!这个把戏完全让我忘了。我已经为这个问题斗争了好几天,这将为我解决。我只是将其放在网址的末尾:“?<?php echo time()?>”
thrashr888 2011年


1

我在一个单独的选项卡中打开JavaScript文件Shift,然后刷新,确认我看到了最新更改,然后Shift刷新实际页面(实际上,就我而言,这是一个框架集中的框架,这似乎会使情况更糟)。这几乎一直都有效。



0

转到Chrome中的内容设置,禁用JavaScript并保存。

然后,再次启用JavaScript。


0

如果您正在使用JavaScript,并且担心重新加载页面以反映JavaScript更改。尝试使用Chrome调试器,您可以在运行时对已加载的JavaScript文件进行更改,而无需使用任何重新加载功能就可以测试新功能或要测试的更改。


欢迎来到超级用户!请仔细阅读问题。您的答案没有回答原始问题。
DavidPostill


0

在JavaScript文件的末尾添加一些动态日期函数。它将强制浏览器加载更新的JavaScript文件。意思是,当包含.js文件时,您可以添加.... xyz.js?

< ? php echo date('l jS \of F Y h:i:s A') ? >

当然,一旦调试完成并准备就绪,就可以将其删除。


这不是Javascript。
Natalie Adams
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.