2011-01-13 41 views
1

我最近了解到,UpdatePanel使用了添加了“no-cache”头的HTTP请求。这会导致其中的图像在每个UpdatePanel更新中下载。我不想要这个。带有浏览器缓存的UpdatePanel

那么我该如何预防呢?

我曾考虑过扩展UpdatePanel控件并尝试删除请求的“no-cache”部分,但肯定必须有更优雅的解决方案。

回答

0

UpdatePanel只会将no-cache标头放在自己的更新请求上,而不是对其他资源(如图像)的请求。这些由浏览器像常规请求一样处理,即使它们在UpdatePanel内容中。
也许你只是忘了把Expires标题放在你的图片上?

1

使用jquery手动替换面板的内容。我已经做了很多。我一般用的是使用用户控件,然后该模式使用这样的代码捕获文本:

var stringBuilder = new StringBuilder(); 
using (var tw = new TextWriter()) 
{ 
     var htmlWriter = new HtmlWriter(tw); 

     userControl.RenderControl(htmlWriter); 

     return stringBuilder.ToString(); 
} 

这是结果我回到PageMethod,我设置的HTML中指定的DIV,和邦 - 你完成了。

与开发中的许多事情一样,您最终会用自动化工具打开墙壁,并且必须在抽象级别下拉以使其工作。祝你好运!

+0

这是一个很好的选择,但没有回答这个问题。 – 2011-01-14 08:06:46

+1

我认为这是您获得更好控制所需的唯一方法。 – 2011-01-14 13:48:17