首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >禁用某些图像的缓存

禁用某些图像的缓存
EN

Stack Overflow用户
提问于 2009-04-08 13:30:20
回答 9查看 193.1K关注 0票数 123

我使用PHP库生成一些图像。

有时浏览器不加载新生成的文件。

如何才能仅为我动态创建的图像禁用缓存?

注意:随着时间的推移,我必须为创建的图像使用相同的名称。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-04-08 11:45:33

对于这个问题,一种常见而简单的解决方案是为每个动态图像请求添加一个随机生成的查询字符串。

所以,举例来说-

代码语言:javascript
复制
<img src="image.png" />

会变成

代码语言:javascript
复制
<img src="image.png?dummy=8484744" />

代码语言:javascript
复制
<img src="image.png?dummy=371662" />

从web服务器的角度来看,访问相同的文件,但是从浏览器的角度来看,不能执行高速缓存。

随机数的生成既可以发生在提供页面时的服务器上(只要确保页面本身没有被缓存...),也可以发生在客户端(使用JavaScript)。

您将需要验证您的web服务器是否可以处理此技巧。

票数 258
EN

Stack Overflow用户

发布于 2009-04-08 05:54:40

浏览器缓存策略可以通过HTTP标头进行控制。记住,它们只是一个提示,真的。由于浏览器在这个(和任何其他)字段中非常不一致,您将需要几个头文件才能在一系列浏览器上获得所需的效果。

代码语言:javascript
复制
header ("Pragma-directive: no-cache");
header ("Cache-directive: no-cache");
header ("Cache-control: no-cache");
header ("Pragma: no-cache");
header ("Expires: 0");
票数 46
EN

Stack Overflow用户

发布于 2011-05-25 05:03:01

如果您需要使用javascript在浏览器中动态执行此操作,这里有一个示例...

代码语言:javascript
复制
<img id=graph alt="" 
  src="http://www.kitco.com/images/live/gold.gif" 
  />

<script language="javascript" type="text/javascript">
    var d = new Date(); 
    document.getElementById("graph").src = 
      "http://www.kitco.com/images/live/gold.gif?ver=" + 
       d.getTime();
</script>
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/728616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档