想写个程序,统计加载指定url所需时间,有什么好的办法?

hxwangcong 2014-08-19 11:00:35
我现在能想到的就是用webbrowser控件,通过documentcomplete事件来结束计时的方法,但是对于含有iframe的页面,好像documentcomplete事件会执行多次,此方法并不是很完美
有没有什么更好的方法?
...全文
165 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果是统计任意访客在你网站上任意页面的访问延时(网络加载时间,页面加载时间)的话,推荐你用JYC统计软件,不过对于企业来说是付费的。http://www.adjyc.com 毕竟自己做太费劲了。
成都-狗蛋儿 2014-08-20
  • 打赏
  • 举报
回复
引用 2 楼 hxwangcong 的回复:
[quote=引用 1 楼 gdf87521 的回复:]
 //统计页面执行时间(毫秒)
    private DateTime dtime;
    protected override void OnPreInit(EventArgs e)
    {
        dtime = DateTime.Now;
        base.OnPreInit(e);
    }
    protected override void OnLoadComplete(EventArgs e)
    {
        base.OnLoadComplete(e);
        TimeSpan ts = DateTime.Now - dtime;
        RunTime.Text = "本次页面执行耗时 " + ts.TotalMilliseconds.ToString() + " 毫秒";
    }
谢谢你的回复!可是我想做的是winform客户端统计网页加载时间,不知有没有什么好的方案?[/quote]
var URLs = new[] 
{ 
    "http://www.google.com", 
    "http://www.microsoft.com", 
    "http://www.slashdot.org"
};

var tasks = URLs.Select(
url => Task.Factory.StartNew(task => 
    {
        using (var client = new WebClient())
        {
            var t = (string)task;
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();
        String result = client.DownloadString(t);
        stopwatch.Stop();
            Console.WriteLine(String.Format("{0} = {1}", url, stopwatch.Elapsed));
        }
    }, url)
    ).ToArray();
    Task.WaitAll(tasks);
hxwangcong 2014-08-20
  • 打赏
  • 举报
回复
引用 1 楼 gdf87521 的回复:
 //统计页面执行时间(毫秒)
    private DateTime dtime;
    protected override void OnPreInit(EventArgs e)
    {
        dtime = DateTime.Now;
        base.OnPreInit(e);
    }
    protected override void OnLoadComplete(EventArgs e)
    {
        base.OnLoadComplete(e);
        TimeSpan ts = DateTime.Now - dtime;
        RunTime.Text = "本次页面执行耗时 " + ts.TotalMilliseconds.ToString() + " 毫秒";
    }
谢谢你的回复!可是我想做的是winform客户端统计网页加载时间,不知有没有什么好的方案?
成都-狗蛋儿 2014-08-19
  • 打赏
  • 举报
回复
 //统计页面执行时间(毫秒)
    private DateTime dtime;
    protected override void OnPreInit(EventArgs e)
    {
        dtime = DateTime.Now;
        base.OnPreInit(e);
    }
    protected override void OnLoadComplete(EventArgs e)
    {
        base.OnLoadComplete(e);
        TimeSpan ts = DateTime.Now - dtime;
        RunTime.Text = "本次页面执行耗时 " + ts.TotalMilliseconds.ToString() + " 毫秒";
    }

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧