【问题标题】:Disable caching of images only in browser(IE)仅在浏览器 (IE) 中禁用图像缓存
【发布时间】:2016-11-12 01:04:15
【问题描述】:

我们正在构建一个单页应用程序(dojo),它将所有内容下载到本地存储和浏览器缓存(IE)。我们正在将 JSON 文件(数据)推送到本地存储和 indexedDB .所有数据都在 Chrome 和 Firefox 中下载,但在 IE 中是部分下载的。在 IE 浏览器中,缓存限制设置为 10MB。我们还看到图像被下载到临时文件夹。当我们将缓存和数据库中的允许限制增加到更高的值时,所有数据都被下载。

我们预测问题可能是由于图像被下载到临时文件夹。因为我们不允许增加缓存限制,因为它需要在我们必须在代码中管理的组织级别进行更改.我们如何禁用将图像下载到 html 页面中的浏览器缓存(临时文件夹)?或者有没有其他方法可以解决这个问题?

【问题讨论】:

    标签: javascript html internet-explorer caching dojo


    【解决方案1】:

    为您的图像的每个请求添加一个随机生成的查询字符串。

    带有查询字符串的图像示例:

    <img src="image.png?8484744" />
    

    这将阻止浏览器在本地缓存图像。

    这里是一个脚本,用于在 src 上为使用 dojo 的所有图像添加动态创建的查询字符串。

    实时示例,(请检查 dom 以查看查询字符串):

    https://jsfiddle.net/haw785rs/

    require(['dojo/query', 'dojo/dom-attr'], function(query, domAttr) {
      var images = query('img');
      images.forEach(function(item) {
        domAttr.set(item, 'src', item.src + '?' + Date.now());
      });
    })
    

    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=350&h=150" alt="Test" height="350" width="150">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=350&h=150" alt="Test" height="350" width="150">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=350&h=150" alt="Test" height="350" width="150">
    

    您还可以在服务器端强制执行此行为,以确保您的图像与标头一起交付

    Cache-control: max-age=0, must-revalidate

    (我建议您将服务器方法与动态查询字符串一起使用)。

    【讨论】:

      猜你喜欢
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2012-01-05
      • 2018-08-30
      • 1970-01-01
      相关资源
      最近更新 更多