如何强制Chrome浏览器的脚本调试器重新加载JavaScript?


244

我真的很喜欢在chrome调试器中编辑javascript的功能,但是我发现让调试器从服务器重新获取JavaScript确实很成问题。

有时候,我不得不关闭调试器并重新加载框架就可以了-但其他时候(dI无法确定发生这种情况的条件),我必须清除我的临时Internet缓存。有时我发誓我必须完全关闭chrome,然后清除缓存,然后加载页面,然后调试器才能最终向我显示最新脚本。

(注意:Web服务器不缓存脚本)

我想知道是否有人知道一种快速简便的方法来告诉调试器使其所有JavaScript无效并在页面重新加载时重新获取所有JavaScript?


1
有时,我什至必须重新启动IIS Express才能正确重新加载内容。
克里斯·奥

Answers:


330

在开发脚本时,请尝试禁用Chrome缓存。

重新加载页面后,现在应该刷新JavaScript。


Chrome大约2011年

打开设置 禁用缓存


Chrome大约2018

打开设置 禁用缓存

您还可以在“网络”标签上访问它:

网络标签


8
那么,这是否始终适用,还是仅在调试器打开时适用?
PilotBob 2012年

7
仅在开发工具打开时
Karolis 2012年

11
我已经设置好了,现在突然之间,我被某个文件卡住了。有人找到解决办法吗?
IronicMuffin 2012年

5
这只是增加了我几年的生活。我尝试了CMD + SHIFT + R,但是没有成功。谢谢
Kevin Zych

7
对于最近才遇到此问题的用户,请注意,“设置”菜单位于“开发人员工具”中的三个垂直点菜单之外。在那里,您将能够选中复选框以禁用缓存。
斯科特C威尔逊

136

在此处输入图片说明

打开Chrome开发工具的同时,右键单击/按住并按住 “重新加载”按钮,即可访问上面显示的上下文菜单。

空缓存和硬重装最适合我。

另一个优点:此选项使所有其他打开的选项卡和网站数据保持不变。它仅重新加载并清除当前页面。


5
这样做特别有用,因为它很容易解释。我遇到一个问题,客户看不到他的网站上所做的修改。按F12,然后右键单击“重新加载”按钮,选择“清空缓存和硬重新加载”。我已经做好了,该评论
不胜枚举

它是最好的Chrome功能:),随时可以配合。
比绍伊·汉娜

1
谢谢!我试图弄清楚为什么“重新加载”按钮有时为我提供菜单,而有时却没有。
iconoclast

1
重新加载Javascript文件时,Ctrl + Shift + R没问题,但这不会带回HTML文件中提供的更新内容。为此,Empty Cache和Hard Reload达到了目的。
S. Baggy 2015年

最好的方法,使用此空缓存并进行硬重装
-hoogw

34

您始终可以通过执行以下操作清除特定文件:

  1. 打开开发工具
  2. 单击来源选项卡
  3. 查找您的脚本/图像/文件
  4. 检查右侧面板以查看文件是否最新

如果不:

  1. 右键单击左侧面板中的资源,然后选择“在新选项卡中打开链接”
  2. 使用上述方法强制重新加载资源。(请参见@Bishoy Hanna的示例)

如果您具有框架中的资源并且CTRL+F5不强制刷新它们,这将非常方便。


1
真正。按CTRL + F5 =清除缓存刷新当前页面
STEEL 2013年

我没有“资源”标签。
迈克W

@MikeW,它已重命名为Sources。我已经更新了答案
Steve Tauber


9

对于Google chrome,不是Ctrl+ F5。清除当前缓存是Shift+ F5!这个对我有用 !


为什么呢 我不明白那和评论之间有什么区别。最后,最有用的问题将在帖子顶部看到。
RPDeshaies 2013年

2
发问者在任何时候都没有提到Ctrl-F5,因此根据定义,您的答案不是对发问者提出的问题的答案,而是评论,是对其他人的回答的更正,因此应将其视为。
爱德华A

9

这是DevTools的快捷方式:

  1. F12 打开Chrome DevTools
  2. F1 打开DevTools设置
  3. 选中禁用缓存(打开DevTools时),如下所示:

在此处输入图片说明

注意:根据Dimi的评论进行了更新。他们倾向于移动它,所以如果您发现它已更改,请让我知道或更新。



2

如果要在开发人员工具中对JavaScript进行本地更改,则需要确保在重新加载页面之前关闭这些更改。

在“源”选项卡中,打开脚本,右键单击脚本,然后从上下文菜单中单击“本地修改”选项。这将显示已保存修改内容的脚本列表。如果您在该窗口中看到它,那么开发人员工具将始终保留本地副本,而不是从服务器刷新它。单击“还原”按钮,然后再次刷新,您应该获得新的副本。


1

Chrome调试器似乎将源文件加载到内存中,尽管浏览器缓存已更新,也不会放任它们,即,它具有自己的缓存(与浏览器缓存不同步)。至少在处理源映射文件时就是这种情况(我正在调试打字稿源)。成功刷新浏览器缓存并通过直接浏览到源文件进行验证之后,您下载了更新的文件,但是,只要在调试器中重新打开该文件,无论普通浏览器缓存的版本如何,它都会继续返回旧文件。确实非常烦人。

我认为这是Chrome中的错误。我使用版本46.0.2490.71 m。

唯一有用的是重新启动chrome(关闭所有chrome浏览器)。


0

如果要缓存的文件正在缓存,并且所做的更改未反映在代码中,则有两种方法可以解决此问题

  1. 所有人都告诉我们清除缓存

  2. 如果您要使用Cache并且只需要重新加载文件,则可以转到开发工具的“网络”标签,然后清除所有已加载的文件。下次它将不会从缓存中加载它。您将拥有最新的更改。


0

如果您在Apache上运行本地服务器,则可能会出现缓存问题。当我有一个在Vagrant(在virtualbox中)下运行的Apache服务器时,这发生在我身上。

只需将以下行添加到您的配置文件(/etc/httpd/conf/httpd.conf或等效文件)中:

#Disable image serving for network mounted drive
EnableSendfile off

请注意,值得搜索配置文件以查看是否EnableSendfile设置为on其他任何位置。




0

我认为最简单的方法是在Chrome的“私人浏览会话”中进行操作,以确保您的JavaScript文件不来自缓存。


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.