为什么Google Chrome不会重新加载我的脚本?

时间:2012-04-06 15:13:52

标签: javascript html google-chrome

所以,我有一个名为“引擎”的脚本,经过多次打嗝和(徒劳)调试后,我发现GC根本没有重新加载它!

这是我将其包含在网页(<head>元素内)中的方式:

<script type="text/javascript" src="engine.js"></script>

当在脚本开头放置10 console.log("asdf");时,就好像它们不存在一样。当我进入GC控制台的“资源”选项卡时,我发现没有对该脚本进行任何更改! HLEP?将+ "?" + new Date()放在最后帮助吗?

5 个答案:

答案 0 :(得分:26)

适用于Chrome,Firefox和IE的通用解决方案是通过 Ctrl + Shift + Del 清理缓存(在Mac ⌘ + + )。

Chrome解决方案#1

  1. 打开开发人员工具( F12 + + i ,或右键单击→检查)。
  2. 选择网络标签,然后勾选停用缓存复选框。
  3. Chrome disable cache - Network tab

    1. 重新加载页面。
    2. ❗️注意:当devtools窗口打开时,缓存将仅禁用

      Chrome解决方案#2

        

      只有在未使用#1时才有意义。

      1. 打开开发人员工具。
      2. 点击右下角的设置齿轮图标。
      3. 在显示的对话框中,在 网络 子部分下选择禁用缓存复选框:从现在开始,将跳过缓存devtools窗口是开放的。当devtools窗口关闭时,缓存将照常工作。
      4. Chrome disable cache in devtools settings

        Chrome解决方案#3:空缓存+硬重装

        1. 打开开发人员工具(否则下一步中的菜单将不会显示)。
        2. 点击并按住刷新按钮,然后从下拉列表中选择清空缓存和硬重新加载
        3. Chrome Hard Refresh and Cache Reset

          修改javascript代码

          可用于调试的与浏览器无关的解决方案是在服务器端代码中附加一个随机生成的版本字符串作为查询参数,即将脚本调用为:

          <script type="text/javascript" src="myscript.js?ver=12345"></script>

          ver参数的值发生变化时,此技巧将强制浏览器重新加载脚本。如果您提出了ajax请求,则可以将"?ver=" + new Date().getTime()附加到您的网址。

            

          注意:完成调试后不要忘记删除参数,因为在生产环境中,您很可能执行希望缓存脚本。通常的做法是在每个新构建上生成一个新的时间戳 - 这可以在生产中使用,并确保在新部署之后客户端将始终获得更新的脚本。


            

          与上述所有解决方案不同,即使您在客户端和服务器之间进行某种缓存(例如redis,memcached,varnish)或CDN(例如akamai),这个解决方案也会有效。

答案 1 :(得分:1)

脚本可能会被缓存,因此旧版本从缓存加载。如果您想确保获得新版本,可以强制浏览器重新加载,清除浏览器缓存或更改脚本名称,或在文件名末尾添加不同的查询参数。

答案 2 :(得分:1)

这也让我感到烦恼; CTRL + F5或SHIFT + F5从未奏效...... 唯一有效的方法是打开您的开发工具(点击F12),然后右键单击地址栏旁边的重新加载图标,然后选择“硬重新加载”或“清空缓存和硬重载”

答案 3 :(得分:0)

正如我在评论中所说的,我认为这是一个缓存问题,如果不是CTRL + SHIFT + CANC并清除浏览数据,CTRL + F5应该足够了。然而,有时它是具有某种缓存的服务器,我说这是因为在IBM WebSphere中我经常会遇到缓存问题,而我的浏览器上只有一个简单的F5无法解决。我只需要等待我的网络服务器“刷新”自己。

答案 4 :(得分:0)

2016年10月21日最新的Chrome稳定版。

    打开开发人员工具(F12或右键单击&gt;地址栏右上角的Inspect或垂直省略号图标&gt;更多工具&gt;开发人员工具)。

    点击开发者工具导航栏右上角的垂直省略号图标&gt;设置。
      在“偏好设置”部分中,找到“网络”&gt;禁用缓存。