一个参数解决应用程序中WebBrowser的缓存问题
这两天做在应用程序中使用WebBrowser控件加载网页时候遇到一个问题,重复加载同一个地址和参数相同的url时候,WebBrowser会自动加载本地缓存。
为了解决这个问题上网看了很多相关的信息,大部分都是提到使用winAPi来删除缓存文件夹中的缓存文件以及缓存在内存中的数据。
这样的做法是可以删除缓存,但是考虑到性能方面,的确我是需要删除缓存,但是图片以及js缓存是必须的,不能通通删除吧?因此一直不考虑在网上获得的方法。
昨天突然想起以前做验证码的时候有过类似的问题。
大家经常可以看到更新验证码的地址都会加一个随机参数,目的是在于使得生成的图片达到更高几率的不重复性。
加参数的主要原因也是在于IE的缓存,看来IE缓存是基于url地址的。
那同样的道理是否可以运用在之前的问题上呢?抱着试试的态度,在每次加载连接的时候都加上一个t=DateTime.Now.Ticks参数,果然得到了想要的效果。
因此得到了一个简单的解决方案:
string url ="http://www.xxxxx.com/a.aspx?a=1&b=c&t"=DateTime.Now.Ticks
webBrowser1.Navigate(url);