首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC中的页面渲染时间

MVC中的页面渲染时间
EN

Stack Overflow用户
提问于 2009-04-03 01:45:34
回答 4查看 9.8K关注 0票数 8

问:如何计算渲染MVC页并在母版页上显示时间所需的总时间。

在Asp.net网页表单中,我创建了一个基页类,如下所示:

代码语言:javascript
复制
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";
        }
    }       
}

然后在我的母版页上调用该方法,如下所示:

代码语言:javascript
复制
<div id="performance">
     <% =PageRenderTime %>
</div>

问:我如何用MVC框架来完成同样的事情?

问:对于MVC框架,我应该在哪里设置首次创建页面的开始时间?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-19 16:55:16

执行此操作的最佳方法是计算请求时间。开始请求和结束请求....看看这篇很棒的文章:

http://haacked.com/archive/2008/07/02/httpmodule-for-timing-requests.aspx

票数 10
EN

Stack Overflow用户

发布于 2009-04-03 02:51:00

进入你的web.config并确保你有...

代码语言:javascript
复制
<system.web>
    <trace enabled="true" localOnly="false" />
</system.web>

然后,您可以转到http://.../trace.axd,查看发出的每个请求。

然后,您需要查看From First(s)列,最后一个列是渲染页面所用的时间(服务器端)。

例如。

代码语言:javascript
复制
aspx.page   End Render  0.06121112  0.005297

61.2毫秒来渲染页面。

如果您正在寻找时间代码本身,或者您希望手动执行一些诊断,那么您希望使用System.Diagnostics.Stopwatch类,而不是DateTime。

代码语言:javascript
复制
Stopwatch sw = Stopwatch.StartNew();
...
sw.Stop();
Trace.Write(sw.ElapsedMilliseconds);
票数 4
EN

Stack Overflow用户

发布于 2009-04-03 02:02:41

我可能会覆盖控制器类上的OnActionExecutingOnActionExecuted方法。

代码语言:javascript
复制
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
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/712276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档