【问题标题】:clear browser cache using jquery/Angularjs使用 jquery/Angularjs 清除浏览器缓存
【发布时间】:2018-07-27 07:02:17
【问题描述】:

我想以编程方式清除浏览器缓存。我这样做是因为我部署了新版本的应用程序,但浏览器从缓存中获取旧版本和内容。但我想在浏览器获取新版本时清除缓存并从服务器加载最新的应用程序。

我也使用了location.reload(true);,但它并没有清除缓存,只是重新加载当前页面。

【问题讨论】:

    标签: javascript jquery angularjs caching browser


    【解决方案1】:

    您可以使用版本技巧清除浏览器缓存

    例如,

    <script src="custom.js?version=1.1.1"></script>
    

    只需在文件类型末尾添加虚拟版本。它将重新加载代码

    【讨论】:

    • 我想重新加载完整的应用程序而不是单个文件。我已经这样做了。
    【解决方案2】:

    您无法使用 Angular 或 JQuery 真正清除缓存。一种方法是强制您的浏览器请求新资源。

    一种方法是使用 gulp-rev。

    https://github.com/sindresorhus/gulp-rev

    【讨论】:

      【解决方案3】:

      不能通过 JavaScript 做到这一点。您可以执行以下操作:

      将一些可变字符串附加到内容网址的末尾。示例:

      //example.com/script.js?version=1.0
      

      var timestamp = new Date().getTime()
      var url = "//example.com/script.js?ts=" + timestamp
      

      这实际上使浏览器误以为您尝试加载的 url 是一个新的 url,它会跳过在缓存中查找它。

      Timestamp 方法确实有一个缺点,它永远不会使用浏览器缓存。

      此外,请确保您的 HTML 文件设置了正确的内容标头,以便 html 本身不会被缓存。查看How to control web page caching, across all browsers? 了解有关缓存控制标头的详细信息。

      【讨论】:

        猜你喜欢
        • 2017-04-06
        • 1970-01-01
        • 2015-10-29
        • 2011-10-23
        • 2019-01-18
        • 1970-01-01
        • 2016-02-18
        相关资源
        最近更新 更多