问:如何计算渲染MVC页并在母版页上显示时间所需的总时间。
在Asp.net网页表单中,我创建了一个基页类,如下所示:
public class PageBase : System.Web.UI.Page
{
private DateTime startTime = DateTime.Now;
private TimeSpan renderTime;
public DateTime StartTime
{
set { startTime = value; }
get { return startTime; }
}
public virtual string PageRenderTime
{
get
{
renderTime = DateTime.Now - startTime;
return renderTime.Seconds + "." + renderTime.Milliseconds + " seconds";
}
}
}然后在我的母版页上调用该方法,如下所示:
<div id="performance">
<% =PageRenderTime %>
</div>问:我如何用MVC框架来完成同样的事情?
问:对于MVC框架,我应该在哪里设置首次创建页面的开始时间?
发布于 2010-11-19 16:55:16
执行此操作的最佳方法是计算请求时间。开始请求和结束请求....看看这篇很棒的文章:
http://haacked.com/archive/2008/07/02/httpmodule-for-timing-requests.aspx
发布于 2009-04-03 02:51:00
进入你的web.config并确保你有...
<system.web>
<trace enabled="true" localOnly="false" />
</system.web>然后,您可以转到http://.../trace.axd,查看发出的每个请求。
然后,您需要查看From First(s)列,最后一个列是渲染页面所用的时间(服务器端)。
例如。
aspx.page End Render 0.06121112 0.00529761.2毫秒来渲染页面。
如果您正在寻找时间代码本身,或者您希望手动执行一些诊断,那么您希望使用System.Diagnostics.Stopwatch类,而不是DateTime。
Stopwatch sw = Stopwatch.StartNew();
...
sw.Stop();
Trace.Write(sw.ElapsedMilliseconds);发布于 2009-04-03 02:02:41
我可能会覆盖控制器类上的OnActionExecuting和OnActionExecuted方法。
public class BaseController : Controller {
// Called before the action is executed
public override void OnActionExecuting(ActionExecutingContext ctx) {
base.OnActionExecuting(ctx);
// Start timing
}
// Called after the action is executed
public override void OnActionExecuted(ActionExecutedContext ctx) {
base.OnActionExecuted(ctx);
// Stop timing
}
}https://stackoverflow.com/questions/712276
复制相似问题