C# 浏览器辅助对象与AJAX
我想知道BeforeNavigate2或DocumentComplete事件是否应该在使用AJAX的页面上触发。比如谷歌地图。当我在地址栏中放置一些东西时,一切都正常,但当我移动地图并调整其大小时,什么都不会发生(DocumentComplete和BeforeNavigate2不会启动),但数据会发送到Internet或从Internet发送。ajax中的a代表异步。这些事件是响应同步方法完成而触发的。由于异步请求可以在任何时候发出,浏览器无法知道它们何时全部完成。我认为您需要处理ajax请求,您可以处理DownloadBegin和DownloadComplete事件 代码:C# 浏览器辅助对象与AJAX,c#,ajax,asynchronous,bho,C#,Ajax,Asynchronous,Bho,我想知道BeforeNavigate2或DocumentComplete事件是否应该在使用AJAX的页面上触发。比如谷歌地图。当我在地址栏中放置一些东西时,一切都正常,但当我移动地图并调整其大小时,什么都不会发生(DocumentComplete和BeforeNavigate2不会启动),但数据会发送到Internet或从Internet发送。ajax中的a代表异步。这些事件是响应同步方法完成而触发的。由于异步请求可以在任何时候发出,浏览器无法知道它们何时全部完成。我认为您需要处理ajax请求,
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");
}
这是我的工作。我监视下载开始并下载完整的事件,以处理包含ajax代码的页面。
还需要程序逻辑来控制流程,例如设置/检查标志 所以不可能用Browser Helper对象来测量AJAX请求的时间?请参阅,以了解如何订阅任意事件。请告诉我如何在c代码中订阅DISPID_HtmlIndowEvents2#ONLOAD事件?