【问题标题】:Reload from server for all files从服务器重新加载所有文件
【发布时间】:2019-04-26 21:44:31
【问题描述】:

我知道可以使用location.reload(true) 从服务器强制重新加载。但是,假设我用它来刷新 index.html。如果 index.html 加载了一堆 javascript 文件,那么这些文件仍然来自我的缓存。有没有办法在请求期间忽略缓存?

我的用例是我正在对我的应用程序进行 AB 测试,并希望为用户提供一种在出现问题时返回旧版本的方法。但是有些 URL 是相同的,即使版本之间的文件不同。如果能够在 JS 中处理这个问题,而不是在新版本中更改每个 URL,那就太好了。

【问题讨论】:

标签: javascript browser-cache


【解决方案1】:

实际上至少有535 different ways 可以通过javascript 重新加载页面,仅供参考;)。

你试过把 document 放在前面吗? document.location.reload(true);

也试试这个其他选项:

window.location.href = window.location.href;

或

history.go(0);

当然,两者都是软重新加载,但似乎在某些情况下工作。

如果没有任何效果,您必须将随机数据附加到 url(如时间戳)以强制从服务器下载,绕过缓存。

【讨论】:

    【解决方案2】:

    如果你想绕过浏览器从缓存中获取 js 文件,你需要从服务器中获取不仅仅是 script.js 之类的文件,而是 script.12345.js 当你在服务器上更新你的文件时,你改变文件的哈希数让我们说 script.54321.js 和浏览器理解文件不同,必须重新下载。您实际上可以为此目的使用 Webpack 来实现自动化。在输出而不是 {filename: bundle.js} 你写 {filename: bundle.[hash].js}

    【讨论】:

      猜你喜欢
      • 2013-11-02
      • 2014-02-14
      • 2021-06-24
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      相关资源
      最近更新 更多