【问题标题】:What is the best way to not to cache the image in html5?不将图像缓存在 html5 中的最佳方法是什么?
【发布时间】:2014-06-19 07:35:49
【问题描述】:

我有一个应用程序每 40 毫秒覆盖一次图像(在本地主机中)。我正在尝试每隔 40 毫秒在 HTML5 图像标签中加载该图像(同名并来自本地主机)。问题是加载第一张图片后,图片存储在缓存中,而 HTML5 没有加载新图片(同名)。

我正在搜索并看到(例如Basic HTML5 caching)cache.manifest 问题,但无法解决我的问题。不将图像缓存在 html5 中的最佳方法是什么?

谢谢你

【问题讨论】:

  • 如果您使用的是<img>,请尝试使用<img src='/source?v=1.2'/>,其中 v = number 是您的 img 源的唯一版本??

标签: javascript html image caching reload


【解决方案1】:

您可以尝试对图像的源进行版本控制:

例如:

<img src='/source?v=1.2'/>

我确实建议使用timestamp 作为版本号,因为它每毫秒都是唯一的,因为您每毫秒加载大量图像。

所以, 如果您使用的是 php ,则可以使用 time() 获取时间戳

<img src='/source?v=<? echo microtime(true);?>'/>

【讨论】:

  • 嗨 Aditya 感谢您的评论.. 仍然是同样的问题.. 不刷新图像....
  • @Balu:我已经更新了我的答案尝试使用microtime(true) 以获得更高的精度
【解决方案2】:

和往常一样,不要在 HTML 中这样做。让服务器添加HTTP头:

Cache-Control: no-cache

到图像响应。

否则,您会用随机文件名的垃圾副本填充浏览器的缓存,并将有用的文件推出缓存。

请参阅other answers 了解特定于服务器的配置。

【讨论】:

    【解决方案3】:

    如果您更改源(例如,通过添加额外的参数),缓存将不起作用。您可以通过更改 &lt;img&gt; src(是的,每 40 毫秒)在 JS 中执行此操作,例如通过以下方式(考虑到 img 变量是对 &lt;img&gt; 标记的引用):

    img.src = '/source?nocache=' + (new Date()).getTime()
    

    祝你好运!

    【讨论】:

      【解决方案4】:

      正如 Aditya 在您问题下方的评论中所建议的那样,通过附加查询字符串参数或类似的东西,以某种方式使请求独一无二。

      【讨论】:

        猜你喜欢
        • 2011-01-16
        • 2011-03-01
        • 2013-05-23
        • 2010-09-06
        • 2018-08-20
        • 2015-11-19
        • 1970-01-01
        • 2010-10-05
        • 2010-09-07
        相关资源
        最近更新 更多