适用于 Chrome、Firefox和IE 的通用解决方案是通过Ctrl++ (在 MacShiftDel⌘</kbd>+Shift+⌫</kbd>).
铬解决方案 #1
- 打开开发者工具(F12或⌘</kbd>+⌥</kbd>+i, or right-click → Inspect).
- 选择网络选项卡并勾选禁用缓存复选框。
- 重新加载页面。
❗️注意:只有在 devtools 窗口打开时才会禁用缓存。
铬解决方案 #2
这仅在不使用 #1 时才有意义。
- 打开开发者工具。
- 单击右下角的设置齿轮图标。
- 在出现的对话框中,选择网络子部分下的禁用缓存复选框:从现在开始,当 devtools 窗口打开时,缓存将被跳过。当 devtools 窗口关闭时,缓存将照常工作。
Chrome 解决方案 #3:清空缓存 + 硬重新加载
- 打开开发者工具(否则下一步的菜单将不会显示)。
- 单击并按住Refresh按钮,然后从下拉列表中选择Empty Cache and Hard Reload。
修改javascript代码
可用于调试的与浏览器无关的解决方案是在您的服务器端代码中附加一个随机生成的版本字符串作为查询参数,即将您的脚本称为:
<script type="text/javascript" src="myscript.js?ver=12345"></script>
当参数值改变时,这个技巧将强制浏览器重新加载脚本ver
。如果您发出 ajax 请求,那么您可以附加"?ver=" + new Date().getTime()
到您的 URL。
注意:完成调试后不要忘记删除参数,因为在生产中您很可能确实希望缓存脚本。虽然在每个新构建上生成一个新的时间戳是一种常见的做法 - 这可以在生产中使用,并且将确保在新部署之后客户端将始终获得更新的脚本。
与上述所有解决方案不同,即使您在客户端和服务器之间有某种缓存(例如 redis、memcached、varnish)或 CDN(例如 akamai、cloudflare、cloudfront 等),这个解决方案也可以工作。