1

如果我的目标是通过重复加载测试特定网页在 IE 中的渲染速度(仅使用 javascript onload 事件进行计时并查看页面并不能削减它),那么有什么好方法呢?

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

下面是一些简单的 VB 代码,虽然我在 C# 中尝试过类似的东西。我还尝试为每个测试创建一个新的 Web 浏览器控件(这让事情变得更糟)。我也尝试过使用事件本身而不是使用 readystate 循环。在所有情况下,测试都需要越来越长的时间来运行,尽管使用reload完全插入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
4

2 回答 2

-1

我不确定你可以在控件上挂起什么事件来开始和结束,但这是我在单元测试中使用的代码,用于计算我的引擎处理我给它的数据所花费的时间。

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);

干杯!

于 2009-04-15T16:54:23.287 回答
-1

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

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

于 2009-03-19T02:39:05.650 回答