2011-11-10 2 views
0

BeforeNavigate2 또는 DocumentComplete 이벤트가 AJAX가있는 페이지에서 실행되어야하는지 궁금합니다. 예를 들어 Google지도. 내가 주소 표시 줄에 모든 것을 넣었을 때 괜찮습니다. 그러나 맵을 이동하고 크기를 변경하면 아무 일도 일어나지 않습니다 (DocumentComplete 및 BeforeNavigate2는 실행되지 않습니다). 그러나 데이터는 인터넷으로 보내고받습니다.브라우저 도우미 개체 및 AJAX

답변

0

ajax의 a는 비동기를 나타냅니다. 이러한 이벤트는 동기 메서드 완료에 대한 응답으로 시작됩니다. 비동기식 요청은 언제든지 가능하기 때문에 브라우저는 언제 완료되었는지 알 수 없습니다.

+0

브라우저 도우미 객체로 AJAX 요청 시간을 측정하는 것은 불가능합니까? – user1013552

+0

임의의 이벤트에 가입하는 방법은 http://stackoverflow.com/questions/3298160/how-to-get-complete-html-body-using-browser-helper-object-bho-in-case-of-dhtml을 참조하십시오. –

+0

C# 코드에서 DISPID_HTMLWINDOWEVENTS2_ONLOAD 이벤트를 구독하는 방법을 가르쳐 주시겠습니까? – user1013552

0

ajax 요청을 처리해야하며 DownloadBegin 및 DownloadComplete 이벤트로 처리 할 수 ​​있다고 생각합니다.

코드에서

:

public int SetSite(object site) 
{ 
    if (site != null) 
    { 
     webBrowser = (WebBrowser)site; 
     webBrowser.DownloadComplete += new DWebBrowserEvents2_DownloadCompleteEventHandler(DownloadComplete); 
     webBrowser.DownloadBegin += new DWebBrowserEvents2_DownloadBeginEventHandler(DownloadBegin); 
    } 
    else 
    { 
     webBrowser.DownloadComplete += new DWebBrowserEvents2_DownloadCompleteEventHandler(DownloadComplete); 
     webBrowser.DownloadBegin += new DWebBrowserEvents2_DownloadBeginEventHandler(DownloadBegin); 
     webBrowser = null; 
    } 
    return 0; 
} 

이벤트 :

private void DownloadBegin() 
{ 
    MessageBox.Show("Download Begin"); 
} 
private void DownloadComplete() 
{ 
    MessageBox.Show("Download Complete"); 
} 

나를 위해 일합니다.

0

다운로드 시작 및 다운로드 완료 이벤트를 모니터링하여 아약스 코드가 포함 된 페이지를 처리합니다. 또한 흐름을 제어하는 ​​프로그램 논리가 필요합니다 (예 : 설정/확인 플래그).

관련 문제