小格
没有目标的人,是在帮那些有目标的人完成目标。

一个参数解决应用程序中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);

posted on 2013-03-18 18:46  小格  阅读(219)  评论(0编辑  收藏  举报