這兩天做在應用程序中使用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);