禁用WebBrowser缓存

时间:2014-06-22 00:24:14

标签: vb.net webbrowser-control browser-cache flash navigateurl

我是新来的,真的很想得到你的帮助。 我一直在尝试禁用我的webbrowser的缓存,但是我得到了重载解析失败,因为没有可用的“导航”而没有缩小转换。我被困住了,我不知道该怎么办,我确实搜索了所有可能的解决方案,但没有找到答案。 这是我的代码:

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        Const navNoReadFromCache As Long = 4
        Const navNoHistory As Long = 2
        Const navNoWriteToCache As Long = 8
        Dim navflags As Long
        navflags = navNoHistory + navNoWriteToCache
        WebBrowser1.Navigate("url", 4)
    End Sub
End Class

原始错误消息是:

错误2重载解析失败,因为没有缩小转换就无法调用可访问的“导航”:

'Public Sub Navigate(urlString As String, newWindow As Boolean)': Argument matching parameter 'newWindow' narrows from 'Integer' to 'Boolean'.

'Public Sub Navigate(urlString As String, targetFrameName As String)': Argument matching parameter 'targetFrameName' narrows from 'Integer' to 'String'.

2 个答案:

答案 0 :(得分:1)

.NET WebBrowserControl没有接受int或long参数的重载。 因此,您无法将BrowserNavConstants (this for IWebBrowser2 not .NET WebBrowserControl)值设置为.NET WebBrowserControl。


我找到了以下页面:

http://msdn.microsoft.com/en-us/library/40x214wa%28v=vs.110%29.aspx

  

WebBrowser控件将最近访问过的站点中的Web页面存储在本地硬盘的缓存中。每个页面都可以指定一个到期日期,表示它将保留在缓存中的时间。当控件导航到页面时,通过显示缓存版本(如果有)可以节省时间,而不是再次下载页面。

     

使用Refresh方法强制WebBrowser控件通过下载来重新加载当前页面,确保控件显示最新版本。


更新。 我尝试下面的代码,看起来工作正常:

    private void button1_Click(object sender, EventArgs e) {
        webBrowser1.Navigate("http://www.google.co.jp");
    }

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
        webBrowser1.Refresh(WebBrowserRefreshOption.Completely);
    }

这会加载页面两次。

答案 1 :(得分:0)

因此,经过一段时间的搜索和测试不同的方法,我得到了一个很好的结果。

Shell(" RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8",vbHide)

这是我用来删除在黑屏上保存我的Web浏览器的缓存的代码。 它的作用是搜索Internet Explorer的临时文件并删除它们,vbHide必须保留在逗号旁边才能工作,它的作用是隐藏弹出我们告诉你它删除临时文件的窗口。 / p>