vb中webbrowser控件缓存问题邪道解决方法

  最近使用VB6做一个简单的小软件,使用到WEBBROWSER控件来做个浏览器。但是缓存问题一直很难控制,总是显示缓存过的页面。查了很多资料,有关的信息就这么几条:

1,WEBBOWSER控件的缓存方式可以用IE来控制,也就是在IE[Internet选项]->[常规]->[Internet临时文件]的设置里去更改。但是作为一个独立运行的软件,不能让用户去IE里做设置。

2,本来WEBBROWSER的Navigate2方法提供了缓存控制参数:1,2,4,8,但实际上并没有实现这些参数的控制,所以是无效的。

3,可以用WINDOWS的API来删除缓存,但WEBBROWSER控件的缓存文件和IE放在一起,分不出来。API好象是根据条目序号来定位删除的文件,所以这种方法会把IE的缓存也删了。

  这样一来,问题就不好解决了。但好在用这个软件主要浏览的站点是可以控制的,所以可以在两方面用邪道方法绕开缓存。主要是两步:

1,在VB程序里,执行WEBBROWSER的Navigate方法之前,把URL后面加一个CACHE参数,参数值用个随机数。这样一来,所有从VB程序直接写URL访问的地址都不一样了,从而避免缓存。函数如下:

Public Function ranURL(ByVal strURL As String) As String

Dim IMFlag As Integer

Dim cacheNU As Long

IMFlag = InStr(strURL, "?") '判断URL是否带参数

cacheNU = Fix(Timer()) '取时间做随机数

If IMFlag > 0 Then

ranURL = strURL & "&cache=" & cacheNU

Else

ranURL = strURL & "?cache=" & cacheNU

End If

End Function

2,在服务器端页面里,所有页面上的链接全在后面加一个CACHE参数,也用一个随机数。这样保证在VB程序里点击页面链接访问的地址也都不一样。

link

评论

Popular Posts

《小狗钱钱》[德] 博多·舍费尔

高硼硅玻璃水杯

《怦然心动的人生整理魔法》近藤麻理惠

新概念英语PDF扫描版

CuteHttpFileServer/chfs 文件服务器,支持http,webdav,多平台

5个免费的在线笔记本服务

长方形带把手Tritan随手杯

华为316材质智能保温杯(哈尔斯代工)

月光宝盒 - 提供网站数据备份服务