Отключить кэширование 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 Не удалось разрешить перегрузку, потому что никакое доступное "Navigate" не может быть вызвано без сужающего преобразования:

'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 ответа

Решение

Так что после некоторого времени поиска и тестирования разных методов я пришел с хорошим результатом.

Оболочка ("RunDll32.exe InetCpl.cpl, ClearMyTracksByProcess 8", vbHide)

Это код, который я использовал для удаления кэша, который держал мой веб-браузер на черном экране. Что он делает, это ищет временные файлы Internet Explorer и удаляет их, vbHide должен оставаться рядом с запятой, чтобы работать, что делает, это скрывает всплывающее окно, сообщающее вам, что он удаляет временные файлы.

.NET WebBrowserControl не перегружен тем, что принимает int или длинный аргумент. Таким образом, вы не можете установить значение BrowserNavConstants (это для IWebBrowser2, а не.NET WebBrowserControl) в значение.NET WebBrowserControl.


Я нашел следующую страницу:

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

Элемент управления WebBrowser хранит веб-страницы с недавно посещенных сайтов в кэше на локальном жестком диске. На каждой странице можно указать срок действия, указывающий, как долго она будет оставаться в кэше. Когда элемент управления переходит на страницу, он экономит время, отображая кэшированную версию, если она доступна, вместо повторной загрузки страницы.

Используйте метод 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);
    }

Это загружает страницу два раза.

Другие вопросы по тегам