我真的很喜欢在chrome调试器中编辑javascript的能力,但是我发现让调试器从服务器重新获取JavaScript真的有问题 .
有时候我必须尽可能地关闭调试器并重新加载框架工作正常 - 但有时(dI无法确定在什么条件下发生这种情况)我必须清除我的临时互联网缓存 . 有时我发誓我必须完全关闭chrome,然后清除缓存然后在调试器最终向我显示最新脚本之前加载页面 .
(注意:Web服务器没有缓存脚本)
我想知道是否有人知道一种快速简便的方法告诉调试器使其所有的javascript无效并在页面重新加载时重新获取它?
15 回答
在开发脚本时,请尝试停用Chrome缓存 .
当您重新加载页面时,JavaScript现在应该刷新 .
Chrome大约2011年
Chrome大约2018年
您也可以在网络选项卡上访问它:
上面显示的上下文菜单可以通过 right clicking / presssing & holding "reload"按钮访问,而 Chrome Dev Tools is opened .
空缓存和硬重载最适合我 .
Another Advantage: 此选项可保持所有其他打开的选项卡和网站数据不变 . 它只重新加载并清除当前页面 .
您始终可以通过执行以下操作清除特定文件:
Open Dev Tools
单击“来源”选项卡
找到您的脚本/图像/文件
检查右侧面板,查看您的文件是否是最新的
如果不:
右键单击左侧面板中的资源,然后选择'Open Link in New Tab'
使用上述方法强制重新加载资源 . (参见@Bishoy Hanna的例子)
如果您拥有框架中的资源并且
CTRL+F5
没有强制刷新它们,则这非常方便 .Shift F5快速清除缓存 .
对于Google Chrome,它不是Ctrl F5 . 它是Shift F5来清除当前缓存!这个对我有用 !
这是DevTools的快捷方式:
F12打开Chrome DevTools
F1打开DevTools设置
检查禁用缓存(当DevTools打开时),如下所示:
注意:根据Dimi的评论更新 . 他们倾向于移动它,所以如果您注意到它已被更改,请让我知道或更新帖子 .
在Windows上,Ctrl Shift r会强制重新加载chrome中的脚本 .
如果您在开发人员工具中对javascript进行本地更改,则需要确保在重新加载页面之前关闭这些更改 .
在“源”选项卡中,打开脚本,右键单击脚本,然后从上下文菜单中单击“本地修改”选项 . 这会显示您已保存修改的脚本列表 . 如果您在该窗口中看到它,开发人员工具将始终保留您的本地副本,而不是从服务器刷新它 . 单击“还原”按钮,然后再次刷新,您应该获得新的副本 .
似乎Chrome调试器将源文件加载到内存中,尽管浏览器缓存更新,但它不会让它们继续运行,即除了不同步的浏览器缓存外,它还有自己的缓存 . 至少,使用源映射文件(我正在调试typescript源)时就是这种情况 . 在成功刷新浏览器缓存并通过直接浏览源文件验证后,您下载更新的文件,但只要在调试器中重新打开该文件,它将继续返回旧文件,无论普通浏览器缓存中的版本如何 . 非常讨厌 .
我认为这是chrome中的一个错误 . 我使用的是版本46.0.2490.71 m .
唯一有帮助的是重启chrome(关闭所有Chrome浏览器) .
如果您正在加载的文件被缓存,并且您所做的更改未反映在代码中,那么有两种方法可以处理此问题
按照每个人的说法清除缓存
如果您想要缓存并且只需要重新加载文件,您可以转到开发工具的网络选项卡并清除加载的内容 . 下次它不会从缓存中加载它 . 你会得到最新的变化 .
如果您在Apache上运行本地服务器,则可以获得缓存问题 . 当我在Vagrant下运行Apache服务器时(在virtualbox中),这发生在我身上 .
只需添加以下行到您的配置文件(
/etc/httpd/conf/httpd.conf
或等效文件):请注意,值得搜索配置文件以查看
EnableSendfile
是否在其他地方设置为on
.还有2个(快速)解决方法:
使用隐身模式诡计调试,关闭窗口并重新打开 .
删除您的浏览记录
停用断点导致为我加载新脚本 .
在我看来,最简单的方法是在chrome的“私人浏览会话”中工作,以确保您的javascript文件不会来自缓存 .
您还可以使用此Chrome扩展程序在使用或不使用缓存之间快速切换:https://chrome.google.com/webstore/detail/cache-killer/jpfbieopdmepaolggioebjmedmclkbap