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

eXtplorer - 一个基于PHP和JavaScript的在线文件管理器

随身WiFi折腾指南: 解锁、刷机与DIY

mihomo各平台客户端下载(windows, android, macos)

常用的国内外延迟测速链接(generate_204)

Win10和Win11家庭版开启远程桌面功能RDP

坚持跑步到底有哪些改变?

十二国记 (2002)

优化PC端B站(Bilibili)免登录观看体验

Cromite - 极度注重隐私的Chromium浏览器