首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何判断一个页面加载所耗费的时间 [已结帖,结帖人:crodling]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • crodling
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-21 16:52:05 楼主
    页面被加载开始到页面在ie浏览器完全结束显示这个时间的过程
    200  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sxu_nono
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 16:54:531楼 得分:0
    关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • LQknife
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 16:57:362楼 得分:0
    好高深 晓习 顶顶更健康
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • uself
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 16:57:473楼 得分:0
    做一次页面跳转,跳进前记录时间,跳出后记录时间,前后两页面要尽可能简单,以至于可以忽略所加载时间.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • FengLing7885
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:01:524楼 得分:0
    用火狐打开.在火狐中安装这个插件firebug-1.2.0b4-fx.xpi
    打开页面时,按F12
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kevin_cheng
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:03:245楼 得分:0
    在global.asax文件中计算时间

    C# code
    DateTime dt; protected void Application_Start(object sender, EventArgs e) { dt = DateTime.Now; } protected void Application_End(object sender, EventArgs e) { DateTime dt2 = DateTime.Now; TimeSpan ts = dt2 - dt; Response.Write("the request takes " + ts.TotalMilliseconds.ToString() + " milliseconds<BR>"); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • crodling
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:06:366楼 得分:0
    做一次页面跳转,跳进前记录时间,跳出后记录时间,前后两页面要尽可能简单,以至于可以忽略所加载时间.
    这样判断似乎会比较麻烦一些吧,而且要在程序里面另外去写代码

    我的想法是能否通过webRequest 发送请求,当request.EndGetResponse然后记录对应页面的加载时间,这样是否可行
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liujb526
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:06:567楼 得分:0
    做个记号
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kevin_cheng
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:08:138楼 得分:0
    修改一下:
    Response.Write("the  request  takes  "  +  ts.TotalMilliseconds.ToString()  +  "  milliseconds");
    这句就不要了,你可以直接吧ts.TotalMilliseconds.ToString()放到Sessions里面,方便你在其他地方用.....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Feiin
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:10:519楼 得分:0
    引用楼主 crodling 的帖子:
    页面被加载开始到页面在ie浏览器完全结束显示这个时间的过程


    你是指在服务端端执行的时间

    还是客服端加载时间
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ojlovecd
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:19:3310楼 得分:100
    C# code
    protected DateTime dt; protected void Page_Load(object sender, EventArgs e) { } protected override void OnPreInit(EventArgs e) { dt = DateTime.Now; base.OnPreInit(e); } protected override void OnLoadComplete(EventArgs e) { base.OnLoadComplete(e); TimeSpan ts = DateTime.Now - dt; Response.Write("加载页面用时:" + ts.TotalMilliseconds); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kevin_cheng
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:26:0011楼 得分:0
    C# code
    DateTime dt; protected void Application_BeginRequest(Object sender, EventArgs E) { dt = DateTime.Now; } protected void Application_EndRequest(Object sender, EventArgs E) { DateTime dt2 = DateTime.Now; TimeSpan ts = dt2 - dt; Response.Write("The request takes " + ts.TotalMilliseconds.ToString() + " milliseconds"); }

    不好意思啊,上面事件被我搞错了.....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ojekleen
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:28:3812楼 得分:0
    引用 6 楼 crodling 的回复:
    做一次页面跳转,跳进前记录时间,跳出后记录时间,前后两页面要尽可能简单,以至于可以忽略所加载时间.
    这样判断似乎会比较麻烦一些吧,而且要在程序里面另外去写代码

    我的想法是能否通过webRequest 发送请求,当request.EndGetResponse然后记录对应页面的加载时间,这样是否可行


    可以的,自已写一个httpmodul,应该容易整好的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lovehongyun
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:32:4613楼 得分:0
    引用 10 楼 ojlovecd 的回复:
    C# code
            protected DateTime dt;
            protected void Page_Load(object sender, EventArgs e)
            {
               
            }
            protected override void OnPreInit(EventArgs e)
            {
                dt = DateTime.Now;
                base.OnPreInit(e);
            }

            protected override void OnLoadComplete(EventArgs e)
            {
                base.OnLoadComplete(e);
          …


    10楼的代码正确.lz可以结了..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • leehniu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:33:0414楼 得分:0
    页面跟踪
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yagebu1983
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 18:24:3815楼 得分:0
    10楼的代码绝对正确.
    接分!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wxg22526451
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 18:26:0316楼 得分:0
    服务端的看楼上的,
    发个客户端加载的时间计算
    JScript code
    在页面Head部分加入初始时间 引用 <script language=javascript> var t1 = new Date().getTime(); </script> 在Body中加入 引用 <SCRIPT LANGUAGE="JavaScript"> window.onload = function() { document.getElementById("TimeShow").innerHTML = "加载本页耗时 "+ (new Date().getTime()-t1) +" 毫秒"; } </SCRIPT> 在需要显示的地方插入一个ID为TimeShow的标签即可 引用 <div id="TimeShow"></div>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • carl974
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 19:59:5917楼 得分:0
    C# code
    protected DateTime dt; protected void Page_Load(object sender, EventArgs e) { } protected override void OnPreInit(EventArgs e) { dt = DateTime.Now; base.OnPreInit(e); } protected override void OnLoadComplete(EventArgs e) { base.OnLoadComplete(e); TimeSpan ts = DateTime.Now - dt; Response.Write("加载页面用时:" + ts.TotalMilliseconds); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hy_lihuan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 20:32:5018楼 得分:0
    引用 10 楼 ojlovecd 的回复:
    C# code
            protected DateTime dt;
            protected void Page_Load(object sender, EventArgs e)
            {
               
            }
            protected override void OnPreInit(EventArgs e)
            {
                dt = DateTime.Now;
                base.OnPreInit(e);
            }

            protected override void OnLoadComplete(EventArgs e)
            {
                base.OnLoadComplete(e);
          …

    想不出来更好的办法了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sunxw18
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 20:36:5419楼 得分:0
    C# code
    public class UrlReWrite : IHttpModule { private DateTime start; private DateTime end; public UrlReWrite() { // // TODO: 在此处添加构造函数逻辑 // } #region IHttpModule 成员 public void Dispose() { throw new Exception("The method or operation is not implemented."); } public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(Begin_Request); context.EndRequest += new EventHandler(End_Request); } #endregion private void Begin_Request(object sender, EventArgs e) { start = DateTime.Now; //HttpApplication app = sender as HttpApplication; //string currentUrl = app.Context.Request.RawUrl; //string newUrl = Common.GeneratePhysical(currentUrl); //app.Context.RewritePath(newUrl); } private void End_Request(object sender, EventArgs e) { HttpApplication app = sender as HttpApplication; end = DateTime.Now; TimeSpan t = end - start; app.Context.Response.Write(string.Format("<!-- Server:{0} now:{1} exec time: {2}-->", app.Context.Server.MachineName,DateTime.Now, t)); }


    使用IHttpModule也可以的,然后在 web.config中配置下!页面执行的时间以及是在那台服务器上面执行的都会输出在页面底部!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • crossrowman
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 20:50:1820楼 得分:0

    秒表
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • paulin
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 20:54:5921楼 得分:0
    mark,学习~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • f800051235
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 21:38:5722楼 得分:0
    引用 10 楼 ojlovecd 的回复:
    C# code
            protected DateTime dt;
            protected void Page_Load(object sender, EventArgs e)
            {
               
            }
            protected override void OnPreInit(EventArgs e)
            {
                dt = DateTime.Now;
                base.OnPreInit(e);
            }

            protected override void OnLoadComplete(EventArgs e)
            {
                base.OnLoadComplete(e);
          …
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gui0605
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 21:39:2423楼 得分:0
    如果自己调试,我一般使用firefox的firebug插件,非常方便
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • swort_177
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 21:42:2024楼 得分:0
    TT的下面就有显示一个页面打开所花费的时间
    写程序我不会 关注下!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • c11_11_11
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 08:39:4425楼 得分:0
    学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangjun8868
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 09:15:1626楼 得分:0
    mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天