9

나는 몇 시간 씩 인터넷 검색을하고 있으며 이것을 알아 내려고 노력하고 있습니다. webbrowser1 폼에 1 개의 webbrowser 컨트롤이 있습니다..NET WebBrowser 컨트롤에서 캐싱을 사용하지 않도록 설정하는 방법은 무엇입니까?

webbrowser1.refresh() 또는 webbrowser1.navigate("google.com")을 사용하면 페이지를로드하고 google.com이라고 말하면 페이지를 다시로드하지 않고 캐싱하여 캐시를 다시로드하기 만하면됩니다. 이것은 특히 포럼이나 craigslist와 같은 페이지에서 특히 뚜렷합니다.

각 새로 고침 사이의 캐시를 지우거나 이상적인 캐싱을 사용하지 않도록 설정할 필요가 있습니까? 내가 찾은 유일한 것들은 구식 (vb6 이하)입니다.

+0

vb6 웹 브라우저 컨트롤 예제가 여전히 작동 할 것입니다. 내 대답을 확인하십시오. 왜냐하면 당신이 역사를 죽이면 브라우저가 캐시 된 사본을 가지고 있지 않다고 생각하도록 속일 것이다. 하지만이를 수행하는 유일한 방법은 다른 API를 사용하여 캐시를 삭제하는 것입니다. –

답변

5

webbrowser1.Refresh(WebBrowserRefreshOption.Completely)으로 전화를 시도 할 수 있습니다. 페이지를 새로 고침하고 IE에서 ctrl + F5와 같은 최신 버전을 표시해야합니다. herehere 자세한 정보를 참조하십시오.

일부 임시 파일을 삭제하는 방법을
1

This page shows, 그것을 읽고. 나는 또한이 문제를 가지고 있지만 .refresh()가 나에게 유용하지 않을 때 그것은 documentcomplete 이벤트를 유발하지 않는다. 내가 다시로드 할 때, 나는 단순히 .navigate()를 사용하여 탐색 전에 캐시를 지우하기 위해

System.Diagnostics.Process.Start("rundll32.exe","InetCpl.cpl,ClearMyTracksByProcess 8") 

를 호출합니다.

0

url에 임의의 숫자 또는 GUID를 매개 변수로 추가 할 수 있습니다. 예 :

var url = "http://google.com"; 
webBrowser.Navigate(url + "?refreshToken=" + Guid.NewGuid().ToString()); 

우아한 것은 아니지만 작동합니다. 희망이 도움이됩니다.

1

.navigate 메서드에서 숫자 2 (기록 플래그 없음)를 전달하지만이 탐색에 대한 기록 만 죽이고 링크를 추적 할 때 기록을 죽이지는 않습니다. 클릭 한 링크의 기록을 삭제하려면 이전 이벤트 중 탐색을 가로 채고 cancel = true로 설정 한 다음 이벤트에서 제공 한 URL을 사용하여 탐색을 취소하고 플래그와 함께 .navigate를 사용하여 탐색을 수행하십시오 다시 2로 설정하십시오 (히스토리 플래그 없음).

쿠키와 같은 다른 캐시 항목까지는 플래그가 작동하지 않습니다 (현재 버전에서 구현되었을 수 있지만). Soto는 프로그래밍 방식으로 웹 브라우저 외부에서 수행해야하는 모든 캐시 항목을 강제 종료합니다. 다른 API를 사용하여 사용자 캐시를 쿼리하고 문서를 완료하는 동안 또는 탐색이 완료되었을 때이를 삭제하여 제어합니다.

웹 브라우저 컨트롤을 사용하여 기록을 삭제하면 .goback 메서드가 작동하지 않습니다 (불행히도 같은 기록을 사용하고 다른 기록 목록을 메모리에 보관하지 않음). 그래서 고백을 할 때, 그것은 돌아갈 것이 아무것도없는 것처럼 행동 할 것입니다 : /.

도움이 더 필요하면 알려주세요. 페이지

<meta http-equiv="cache-control" content="no-cache"> 
5

추가

1

사용 navigate(url,4) 0x4=noCache 플래그 메타 태그 다음

0

당신은 그것을 해제 할 수 없습니다. 페이지를 새로 고치거나 요청할 때마다 캐시를 ​​지우거나 웹 브라우저 컨트롤 이외의 것을 사용할 수 있습니다. 각 요청 전에 캐시를 지우려면 온라인에 많은 나쁜 정보가 있습니다.나는 내 대답에 당신을 추천 할 것이다 : https://stackoverflow.com/a/22074463/1607218. 이 페이지의 다른 대답에 게시 된 코드는 신뢰할 수없고 버그가 많이 있지만 잘하면 내 대답은 올바른 방향으로 인도 할 것입니다.)

관련 문제