我目前正在开发一个使用a的ASP.NET应用程序,MasterPage我想测量我的应用程序webform的加载时间并将该信息显示给客户端.
我当前的策略涉及使用Application_BeginRequest事件关联回调(在Global.asax我的网站解决方案的文件中),开始测量服务器端进程所花费的时间(如下所示)
protected void Application_BeginRequest(Object sender, EventArgs e) {
   Context.Items.Add("Request_Start_Time", DateTime.Now);
}
并计算webform OnPreRender事件关联回调的经过时间,将其打印在占位符元素上(如下所示)
protected override void OnPreRender(EventArgs e) {
   base.OnPreRender(e);
   TimeSpan tsDuration = DateTime.Now.Subtract((DateTime)Context.Items["Request_Start_Time"]);
   ExecutionTime.InnerHtml = "<em>Server-side processing duration: " + tsDuration.TotalMilliseconds + " miliseconds.</em>";
}
这是衡量装载时间的最佳方法吗?是否有更"优雅"的方式来实现这一目标?
提前感谢您的时间和合作.
<%@ Page Trace ="true"%>(或在web.config中设置)
启用跟踪并查看trace.axd中的信息(位于您网站的根目录中).
然后你可以设置时间点:
Trace.Write("Start time intensive task");
Trace.Write("Stop time intensive task");
http://msdn.microsoft.com/en-us/library/bb386420.aspx
这假设"您的客户"需要深度调试数据.
您的应用程序似乎足够精确,只要您不呈现非常大的控件树并且您不使用以重写Render方法完成所有工作的服务器控件即可(无经验的服务器控件作者往往会做到这一点……) 。
在这种情况下,实际上存在一种渲染实际渲染时间的方法;-)只需使用一个HttpResponse.Filter对象即可将经过的时间填充到占位符中。在呈现Web表单之后和将其提交给客户端之前,将应用这些过滤器。
如果仅出于开发需要,请搜索trace.axd,这不仅为您提供了很多详细信息,而且还包括了请求上下文,控制树结构和页面大小。
| 归档时间: | 
 | 
| 查看次数: | 17232 次 | 
| 最近记录: |