【问题标题】:how can i use HtmlAgilityPack to measure loading time of html content(include img , div tags and etc)? [duplicate]如何使用 HtmlAgilityPack 测量 html 内容的加载时间(包括 img 、 div 标签等)? [复制]
【发布时间】:2014-03-28 09:03:25
【问题描述】:

我要测量不是我自己开发的网站的加载时间,我从某个地方知道我必须使用 HtmlAgilityPack 来测量 html 内容加载时间。 这是我的代码:

    Stopwatch stop_w = new Stopwatch(); 
    long time_elap = 0;
    string url = "http://www.varzesh3.com/";
    HtmlWeb web = new HtmlWeb();
    HtmlDocument doc = web.Load(url);
    foreach(HtmlNode node in doc.DocumentNode.SelectNodes("//a"))
    {
        stop_w.Start();
        lbl1.Text += node.InnerHtml + "<br />";
        stop_w.Stop();
        time_elap += stop_w.ElapsedMilliseconds;
    }

time_elap 将返回 html 内容的加载时间。 对吗?

【问题讨论】:

  • 没有。在web.Load() 周围放一个秒表。顺便说一句,有更好的方法,请查看迷你分析器
  • 我认为它不可能返回 154445 毫秒的加载时间!
  • 不。阅读您的代码,您所做的就是计算将节点内部文本附加到页面中每个锚点的标签文本所需的时间。您想计算整个页面加载所需的时间。所以将web.Load(url) 调用封装在stop_w.Start()stop_w.Stop() 之间。
  • 好的,我做到了,准确吗?

标签: c# asp.net html-agility-pack stopwatch


【解决方案1】:

您不需要HtmlAgilityPack 来执行此操作。

只需使用WebRequest:

Stopwatch sw = new Stopwatch();
var request = (HttpWebRequest)WebRequest.Create("http://www.google.com");

sw.Start();
using (var response = (HttpWebResponse)request.GetResponse())
{
     //do something
}
sw.Stop();

Console.Write(string.Format("{0} ms", sw.ElapsedMilliseconds));
Console.Read();

【讨论】:

  • 注意,我不需要响应时间,我需要整个加载时间,这可能需要至少 5 秒!
  • @Dash_Javad 这是整个加载时间。
  • 但不到 2 秒,我认为这不合理。
  • ?您正在测试的网址是什么?为什么不合理?
  • 这是一个仅供测试的网站,我可以使用 www.google.com 代替。我从一些程序员那里听说我必须将所有站点元素拆分为它的组件(如 js、css、html、flash 等),并且我必须分别测量它们的加载时间,我在一些网站上看到了 tools.pingdom.com/fpt 这是证明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 2012-05-12
相关资源
最近更新 更多