ChatGPT解决这个技术问题 Extra ChatGPT

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

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

有时我必须尽可能地关闭调试器并重新加载框架工作正常 - 但其他时候(我无法确定在什么情况下会发生这种情况)我必须清除我的临时互联网缓存。有时我发誓我必须完全关闭 chrome,然后清除缓存,然后在调试器最终向我显示最新脚本之前加载页面。

(注意。Web 服务器没有缓存脚本)

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

有时我什至必须重新启动 IIS Express 才能正确重新加载内容。
我今天遇到了这样的麻烦,以至于我在这里尝试了所有的建议并提交了一个错误。在这一点上,我完全傻眼了,为什么我不能再在我的文件中设置断点。我只能在页面视图而不是工作区视图中设置它们。

a
adrianbanks

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

当您重新加载页面时,JavaScript 现在应该会刷新。

大约 2011 年的铬

https://i.stack.imgur.com/0ovTz.png

大约 2018 年的铬

https://i.stack.imgur.com/Do8Px.png

您也可以在网络选项卡上访问它:

https://i.stack.imgur.com/kYWy6.png


那么,这是否始终适用,还是仅在调试器打开时适用?
仅当开发工具打开时
我一直都有那个设置,现在突然之间,我被某个文件卡住了。有人找到解决方案吗?
这只是为我的生活增加了几年。我尝试了 CMD+SHIFT+R 但没有成功。谢谢
对于那些最近才来回答这个问题的人,请注意设置菜单不在开发人员工具中的三个垂直点菜单中。在那里,您将能够选中该框以禁用缓存。
S
Sebbas

https://i.stack.imgur.com/RtbdP.png

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

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

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


那个很有用,特别是因为它很容易解释。我遇到了一个客户没有看到他的网站上所做的修改的问题。按 F12,然后右键单击重新加载按钮,选择 Empty Cache 和 Hard Reload。我已经完成了,比那个评论:-)
它是最好的 chrome 功能 :) ,任何时候都可以。
谢谢!我试图弄清楚为什么“重新加载”按钮有时会给我一个菜单,而有时却没有。
重新加载 Javascript 文件时,我使用 Ctrl+Shift+R 没有问题,但这不会带回 HTML 文件中提供的更新内容。 Empty Cache 和 Hard Reload 做到了这一点。
最好的方法是使用这个空缓存并重新加载
S
Steve Tauber

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

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

如果不:

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

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


真的。按 CTRL + F5 = 清除缓存刷新当前页面
我没有资源选项卡。
@MikeW 它已重命名为 Sources - 我已经更新了答案
r
rink.attendant.6

Shift+F5 快速清除缓存。


ctrl-f5 恐怕不会切芥末。旧的 javascript 文件仍保留在调试器中。
T
Tony L.

这是 DevTools 的快捷方式:

F12 打开 Chrome DevTools F1 打开 DevTools Settings Check Disable cache (while DevTools is open) 如下图:

https://i.stack.imgur.com/ixy8q.png

注意:根据 Dimi 的评论更新。他们倾向于移动它,因此如果您发现它已更改,请告诉我或更新帖子。


r
rink.attendant.6

对于谷歌浏览器,它不是 Ctrl+F5。 Shift+F5 清除当前缓存!这个对我有用 !


为什么 ?我不明白这和评论有什么区别。最后,最有用的问题将在帖子顶部看到。
提问者在任何时候都没有提到 Ctrl-F5,因此根据定义,您的答案不是对提问者提出的问题的回答,而是评论,对其他人答案的更正,应该这样对待。
V
Vijay Nandwana

在 Windows 上,Ctrl+Shift+r 将强制重新加载 chrome 中的脚本。


S
Steve K

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

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


D
David Fahlander

似乎 Chrome 调试器将源文件加载到内存中,并且不会让它们离开,尽管浏览器缓存更新,即除了不同步的浏览器缓存之外,它有自己的缓存。至少,在处理源映射文件时是这种情况(我正在调试打字稿源)。在成功刷新浏览器缓存并通过直接浏览到源文件进行验证后,您下载更新的文件,但是一旦您在调试器中重新打开文件,无论普通浏览器缓存中的版本如何,它都会继续返回旧文件。确实很讨厌。

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

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


M
Mohamad Chami

https://i.stack.imgur.com/BiLYU.png

右键单击chrome中的重新加载按钮,然后单击“清空缓存和硬重新加载”


i
iamshravan

如果您正在加载的文件被缓存并且您所做的更改未反映在代码中,那么您可以通过 2 种方法来处理此问题

正如大家所说的那样清除缓存如果您想要缓存并且只需要重新加载文件,您可以转到开发工具的网络选项卡并清除已加载的任何内容。下次它不会从缓存中加载它。您将获得最新的更改。


M
Mister Verleg

还有 2 个(快速)解决方法:

使用隐身模式进行调试,关闭窗口并重新打开它。删除您的浏览历史记录


M
Mike W

停用断点导致新脚本为我加载。


s
scottbiker

在我看来,最简单的方法是在 chrome 的“私人浏览会话”中工作,以确保您的 javascript 文件不是来自缓存。


a
antoine129

您还可以使用此 Chrome 扩展程序在使用或不使用缓存之间快速切换:https://chrome.google.com/webstore/detail/cache-killer/jpfbieopdmepaolggioebjmedmclkbap