Internet explorer 在特定页面上测试IE的呈现速度

Internet explorer 在特定页面上测试IE的呈现速度,internet-explorer,language-agnostic,com,rendering,Internet Explorer,Language Agnostic,Com,Rendering,如果我的目标是通过重复加载来测试IE中特定网页的呈现速度(仅使用javascript onload事件来计时,查看页面并不会降低速度),那么有什么好办法 我目前的尝试是在VB和C#中使用IE WebBrowser对象,不过我愿意接受其他建议 下面是一些简单的VB代码,尽管我在C#中也尝试过类似的东西。我还尝试为每个测试创建一个新的web浏览器控件(这会让事情变得更糟)。我还尝试使用事件本身,而不是使用readystate循环。在所有情况下,测试运行的时间都越来越长,尽管使用reloadcompl

如果我的目标是通过重复加载来测试IE中特定网页的呈现速度(仅使用javascript onload事件来计时,查看页面并不会降低速度),那么有什么好办法

我目前的尝试是在VB和C#中使用IE WebBrowser对象,不过我愿意接受其他建议

下面是一些简单的VB代码,尽管我在C#中也尝试过类似的东西。我还尝试为每个测试创建一个新的web浏览器控件(这会让事情变得更糟)。我还尝试使用事件本身,而不是使用readystate循环。在所有情况下,测试运行的时间都越来越长,尽管使用
reload
complete instrade of
navigate2
似乎有点帮助,也许这意味着问题是某种历史问题

For cnt = 1 To 100
    timer = GetTickCount()
    Form1.WebBrowser1.Navigate2 "http://www.example.com"
    While Form1.WebBrowser1.ReadyState <> READYSTATE_COMPLETE And GetTickCount() - timer < 5000
        Sleep 50
        DoEvents
    Wend
    Debug.Print GetTickCount() - timer
Next
对于cnt=1到100
计时器=GetTickCount()
表格1.WebBrowser1.Navigate2“http://www.example.com"
而Form1.WebBrowser1.ReadyState ReadyState_COMPLETE和GetTickCount()-计时器<5000
睡50
多芬特
温德
Debug.Print GetTickCount()-计时器
下一个

我认为更好的方法是处理Webbrowser控件公开的OnBeforeNavigate和OnDocumentComplete事件。在OnBeforeNavigate中设置计时器,并在OnDocumentComplete中停止计时器


现在你正忙着等待,这从来都不是一个好主意。

我不确定你可以在控件上挂接什么事件来启动和完成,但下面是我在单元测试中使用的代码,用于计算引擎处理我提供的数据所花的时间

Stopwatch stopWatch = new Stopwatch();

stopWatch.Start();
//perform work
stopWatch.Stop();

TimeSpan ts = stopWatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
                                           ts.Hours,
                                           ts.Minutes,
                                           ts.Seconds,
                                           ts.Milliseconds/10);
Console.Write(elapsedTime);

干杯

正如我在帖子中提到的,我已经试过了,但没有效果。我发布这个具体的例子是因为它是重现问题的最简单的方法,而不是因为它是最好的。事实上,基于事件的方法是我首先尝试的。这是很久以后解决这个问题的一次尝试。我的希望是,增加的简单性将降低复杂性,从而消除问题或至少找出问题所在。