我原以为是你的浏览器正在进行缓存.
无论如何,只要您的链接未在html中静态声明,就可以在图片网址的末尾附加一个随机数:
<img src="http://mywebsite/images/mypic.png?a=123456" />
Run Code Online (Sandbox Code Playgroud)
这个论点没有任何意义,因为你对它没有任何作用,但对于浏览器它看起来像一个新的未缓存的链接.
你如何把这个随机数放在最后由你决定:
<img src="javascript:getMyLink();" />
Run Code Online (Sandbox Code Playgroud)
或者从后面的代码:
Image myImage = new Image();
myImage.Source = "myurl?a=" + Guid.NewGuid().ToString();
someOtherControl.Controls.Add(myImage);
Run Code Online (Sandbox Code Playgroud)
(当然这是伪代码,你需要检查属性名称是否正确).
在IIS7中,您可以在web.config中以声明方式或以编程方式执行此操作.
<location path="YourPath">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="DisableCache" />
</staticContent>
</system.webServer>
</location>
Run Code Online (Sandbox Code Playgroud)
程序化解决方案需要一个简单的HttpModule,它已注册为集成模式下的所有请求运行,您可以在其中查找您关注的URL.然后打电话:
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Run Code Online (Sandbox Code Playgroud)
FWIW,您可能希望仅考虑禁用客户端缓存,同时启用服务器端缓存HttpCacheability.ServerAndNoCache.此外,如果在图像名称上添加查询字符串,则将阻止http.sys进行服务器端缓存.
如果有帮助,我会在我的书中详细介绍这些技术:Ultra-Fast ASP.NET.
| 归档时间: |
|
| 查看次数: |
6826 次 |
| 最近记录: |