我正在开发一个程序来测量我提供的网站的加载时间和数量。
这里我有一些代码只返回网站的响应时间,但我想要总的加载时间和项目总量(图片,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();
}
我怎样才能做到这一点?
答案 0 :(得分:1)
这有点难度。首先使用HTMLAgilityPack或类似的东西来解析原始请求中返回的html(不要尝试自己解析HTML!)
扫描解析后的HTML对象表示,并确定要测量的大小。通常这将是
难点在于,图像经常被指定为css样式表的一部分 - 所以你是否会尝试解析每个css文件以获取这些?
您对HTML所做的原始请求可能已获取下载字符串的字节大小。从这个数字开始作为你的“音量”。
现在以相同的方式为每个js,css,image等文件单独发出请求。但是你感兴趣的只是每次下载的字节大小 - 当你发出HTTP请求时它很容易获得。将每个项目的字节大小添加到总数中。
完成后,您将拥有该网页的所有工件的总字节大小。