2011-03-20 6 views
7

가지고 있습니다. 페이징을 제어하는 ​​일부 JavaScript 함수가있는 aspx 페이지WebClient에서 javascript를 실행합니다.

는 I는 웹 브라우저가 매우 느린입니다 WebBrowser1_DocumentCompleted

WebBrowser1.Document.Window.DomWindow.execscript ("somefunction();", "JavaScript") 

내에서 다음과 같은 방법으로 웹 브라우저를 통해이 자바 스크립트 함수를 실행할 수 있습니다 내가 System.Net.WebClient.DownloadString를 사용하는 것을 선호합니다.

더 빠른 방법이나 다른 방법으로 System.Net.WebClient 방법으로이 스크립트를 실행할 수있는 방법이 있습니까?

답변

19

음, 아니요. WebClientHTTP 클라이언트이며 웹 브라우저는 아닙니다.

HTTP 클라이언트가 HTTP 사양을 따릅니다. HTTP 요청으로 인해 HTML이 생성된다는 사실은 클라이언트와 관련이 없습니다.

반면에 웹 브라우저는 HTTP 클라이언트 일뿐만 아니라 HTML 응답을 구문 분석하고 (예 : JavaScript를 실행하는 등) 또한 알고 있습니다.

당신이 찾고있는 것은 "헤드리스 브라우저"로, HTML 로딩과 DOM에서 자바 스크립트 실행을 지원하는 것으로 보인다. 헤드리스 브라우저는 일반적으로 렌더링을 수행 할 필요가 없으므로 일반적으로 일반 브라우저에 비해 상당히 빠릅니다.

헤드리스 브라우저가 여러 개 있습니다. HtmlUnit (converted이 .NET에서 실행될 수 있음)은 envjs (이는 can be embedded in .NET 인 JavaScript로 작성되었습니다)과 마찬가지로 좋은 선택입니다. 불행히도, 나는 경험이 없지만 둘 다 매우 멋지다. 특히 envjs. 업데이트 : 헤드리스 브라우저의 최신 최신 목록은 published on GitHub입니다.

WebBrowser 컨트롤에 다른 alternatives이 있으며, 컨트롤을 유지하려면 원하는 경우 더 빠르거나 빨라질 수 있습니다.

관련 문제