WebBrowser控件是一个.Net控件类,它具有多个实用的属性、方法和事件,使用它我们可以轻松的在窗体中展示网页内容,但许多喜欢C#编程的小伙伴们在使用WebBrowser控件获取网页内容时遇到了一个同样的问题,那就是不能实时的获取到网页内容,也就是说当网页的内容已经更新了,但是由于浏览器缓存的原因,WebBrowser控件展示的依然是更新前的内容,有的同学可能会想到,每次获取网页内容时清空一下浏览器缓存不就好了,其实这也是网上大多数人的答案,但是这样一来,不仅在代码实现上比较复杂,并且清空浏览器缓存也会影响到执行效果和性能问题,有点得不偿失了,其实还有一种更简单的方法供我们使用,那就是使用DateTime.Now.Ticks,下面亦是美网络就给大家展示一下代码示例吧!
通常情况下,我们使用WebBrowser控件获取网页内容都会这样写:
string url = "http://www.yishimei.cn";
webBrowser1.Navigate(url);
但是由于浏览器缓存的原因,同一个url链接,WebBrowser会直接调取浏览器缓存的内容,这样当原url网页内容更新时,WebBrowser展示的内容却不能实时更新,除非清空浏览器缓存。
网上很多同仁给出的方法是清理浏览器缓存,但这样一来就将问题复杂化了,并且在软件运行性能上也会受到影响,得不偿失。
如果我们使用一种方法,使得WebBrowser获取url网页内容时,每次让url本身都发生变化,这样WebBrowser每次都会把该url当成新的网址来处理。
那么怎样才能实现让url每次都不同呢,那就是使用时间,看代码:
string url = http://www.yishimei.cn;
string time = DateTime.Now.Ticks.ToString();//获取当前时间并将其转换为最小的时间单位
string urlNew=url + @"/?=" + time; //相当于http://www.yishimei.cn/?=636495740151147361
webBrowser1.Navigate(urlNew);
因为当前时间是一直不断在变化的,所以WebBrowser每次获取的url也是不同的,而浏览器缓存导致的问题也就不存在了。