强制Chrome在调试断点时刷新页面

17

如果我在循环或频繁的间隔内设置了断点,我无法通过 ctrl-r 强制刷新 Chrome 以外的方式进行页面刷新。

按下 F5 / 点击刷新按钮将执行普通刷新操作,仅加载修改后的内容,除非调试器已暂停在断点上,此时调试器将继续运行。按住/连续按 F5 只会循环遍历断点,我不能在发现错误并进行代码更改后刷新页面。我宁愿不要执行完全重新加载操作 (ctrl-r),因为我的图片和其他内容已被缓存,无需重新下载。

一种解决方案是关闭调试器,刷新页面,然后再打开调试器。然而,在调试器重新启动之前,JavaScript 就有机会运行。因此,我必须再次刷新页面,以便从头开始运行 JavaScript。

有人找到了解决方法吗?

也许只是我,但我经常想同时对我的代码进行更改和调试。


  • 刷新:F5

  • 否则刷新:hammer+F5?


似乎没有其他方法。当我想在调试过程中编辑代码时,我只需在控制台中键入新代码并运行它。是的,问题通常是我可能会丢失代码,但我不知道其他方法。 - Hayk Mantashyan
我不太确定我理解了,因为在Chrome中ctrl+r是正常的重新加载,而对我来说F5按钮只是刷新。无论如何,一个解决方案是在调试器工具中进行更改,按下ctrl+s并观察Chrome重新编译JS,之后它将重新进入循环到同一点。 - gpgekko
@gpgekko 好的,所以我应该把我的问题改成“刷新”,而不是重新加载页面。 刷新可能会得到修改后的内容(https://dev59.com/PHRC5IYBdhLWcg3wK96V)。如果我要复制/粘贴代码到Chrome中,我可能会直接使用 ctrl-r - jozxyqk
@ gpgekko,也许是 Chrome 的这个重新进入循环特性破坏了我的东西。有没有办法告诉 Chrome 不要这样做,并从头开始重新启动? - jozxyqk
6个回答

5

对我而言有效的方法是按下CMD+R(我使用的是OS X操作系统),然后按F8

看来只有在你通过当前断点后才会重新加载。


可能只是我个人的问题,但使用ctrl-R似乎像shift-refresh一样,忽略缓存并且加载时间更长。通过正常的刷新/重新加载,对于我来说,传递当前断点直接进入下一个断点(或下一个异常,无论哪个先出现)。也许我只能等待谷歌解决他们的界面问题 :( - jozxyqk
也许您在DevTools设置中勾选了“在打开DevTools时禁用缓存”?https://developers.google.com/chrome-developer-tools/docs/settings - avetisk
好想法!这个没有被检查过,但我可能在某个我不应该的地方设置了其他选项。我会去找一下。 - jozxyqk
也许你应该检查一下是否在chrome://flags中设置了一些奇怪的标志。 - avetisk

4

你尝试过从控制台运行以下代码吗?

window.location.reload()

这将重新加载页面的内容,而不是Web检查器。


window.location.reload()重新加载页面内容和开发者工具。这个答案不是原问题的解决方案。 - ElChiniNet

3
右键点击刷新按钮。然后选择重新加载选项之一。

1
一个简单的解决方案是使用“停用断点”按钮。这将使流程在不停止的情况下进行。
然后您可以使用F5仅重新加载更改。 更新 如果您希望在加载页面时立即启用断点,可以执行以下操作:
  1. 在您的页面中设置一个全局标志 = true。例如,window.shouldbreak = true;
  2. 设置您的断点为“条件断点”,如此处所述Chrome Dev Tools Debugging Javascript。当然,您的条件将是if(window.shouldbreak === true)则断开,否则继续。
  3. 运行常规调试流程。
  4. 完成后,在控制台中设置window.shouldbreak = false;现在调试器不会在当前会话中停止任何断点。
  5. 在使用F5重新加载页面时,由于该变量在页面中再次设置,因此您的断点再次起作用。

这个方法可以工作,但与禁用开发工具非常相似,并且仍然存在一个问题,即在页面重新加载和开始运行我的JS时需要再次启用断点。我想我可以添加一个延迟或开始按钮。这只是越来越像Chrome中的一个错误(或设计上的错误)。 - jozxyqk
很酷的想法!不过我觉得它对于错误/异常可能行不通,但是我会尽力而为。 - jozxyqk

1
这是为了呼应 @Munteanu Sergiu 的答案。这里是在OS/X上的屏幕截图。

enter image description here


硬重载什么也没做,我的脚本仍然卡在无限循环中。 - Fox

0
在Chrome浏览器的调试工具栏中,点击左下角(或者工具栏标题)的设置图标,选择禁用缓存,然后尝试重新加载页面。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接