如何获得网站的加载时间和数量?

时间:2014-03-23 13:51:34

标签: c# asp.net

我正在开发一个程序来测量我提供的网站的加载时间和数量。

这里我有一些代码只返回网站的响应时间,但我想要总的加载时间和项目总量(图片,JavaScript,HTML等)。

public string Loading_Time(string url)
{
    Stopwatch stopwatch = new Stopwatch();

    WebClient client = new WebClient();
    client.Credentials = CredentialCache.DefaultCredentials;

    stopwatch.Start();
    string result = client.DownloadString(url);
    stopwatch.Stop();

    return stopwatch.Elapsed.Milliseconds.ToString();
}

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

这有点难度。首先使用HTMLAgilityPack或类似的东西来解析原始请求中返回的html(不要尝试自己解析HTML!)

扫描解析后的HTML对象表示,并确定要测量的大小。通常这将是

  • 包括,例如CSS或javascript
  • IMG和BUTTON元素中的图像,以及背景图像

难点在于,图像经常被指定为css样式表的一部分 - 所以你是否会尝试解析每个css文件以获取这些?

您对HTML所做的原始请求可能已获取下载字符串的字节大小。从这个数字开始作为你的“音量”。

现在以相同的方式为每个js,css,image等文件单独发出请求。但是你感兴趣的只是每次下载的字节大小 - 当你发出HTTP请求时它很容易获得。将每个项目的字节大小添加到总数中。

完成后,您将拥有该网页的所有工件的总字节大小。