Razor中的嵌套布局是否缓慢?

时间:2012-05-09 03:04:55

标签: asp.net-mvc performance razor

我有一个很直接的嵌套布局。

  • _Layout定义了所有全局内容。
    • 的site.css
    • jquery的
    • 基本HTML
  • _2ColLayout就是这么做的。使_Layout成为2Col设计

当我使用_Layout时,页面的渲染时间(如MiniProfiler所示)大约为66ms。奇怪的是,当我使用跳跃到250毫秒的_2ColLayout时。 HTML并不复杂。我疯了,还是有其他人见过这个?有没有已知的工作?

我删除了一些静态HTML来清理下面的代码段。我怀疑那些问题,因为它们只是列表项目,锚点,图像和东西。


_layout

<head>
    @this.InitClientTimings()
    <title>@Page.Title</title>
    @this.TimeScript("Content Bootstrap.css", @<link  href="@Url.Content("~/Components/bootstrap/bootstrap.css")" rel="stylesheet" type="text/css"/>)
    @this.TimeScript("GoogleFont.css", @<link href='http://fonts.googleapis.com/css?family=Days+One|Open+Sans:400&subset=latin,latin-ext' rel='stylesheet' type='text/css' />)
    @this.TimeScript("Content Site.css", @<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />)
   
    @this.TimeScript("LAB.js", @<script type='text/javascript' src="/scripts/LAB.min.js"></script>)
    <script type="text/javascript">        window.q = []; window.$ = function (f) { q.push(f); };</script>
   
</head>
<body id="bootstrap-js">
    <div class="navbar navbar-fixed-top">
        <div class="navbar-inner">
            <div class="container">
                <div class="nav-collapse">
                    <ul class="nav">
                       <!-- nav links -->
                    </ul>
                </div>
               <span class="pull-right">@Html.Action("LogOnControl", "Home")</span>
            </div>
        </div>
    </div>
    <div class="container">
        <div class="page-header">
            @RenderSection("pageheader", false)
        </div>
        <div class="row">
            @RenderBody()
        </div>
    </div>
    <footer>

    </footer>

    @RenderSection("scripts", false)
    @MiniProfiler.RenderIncludes()
    <script type="text/javascript">        $(function () { $("img.lazy").lazyload({ threshold: 50 }); $(window).scroll(); });</script>

     <script type="text/javascript">
         $LAB
        .script("http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js").wait()
        .script("http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.19/jquery-ui.min.js")
        .script("http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js")
        .script("/scripts/jquery.lazyload.min.js")
        .script("/Scripts/social-endlessPage.js")
        .script("/Components/bootstrap/js/bootstrap.min.js")
        .wait(function () {
            $.each(q, function (index, f) {
                $(f)
            });
        });
    </script>
</body>

_2ColLayout

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section pageheader
{
    @RenderSection("pageheader", false)
}
<div class="span8">
    @RenderBody()
</div>
<div class="offset1 span3 rightbar">
    @if (IsSectionDefined("rightbar"))
    {
        @RenderSection("rightbar", false)
    }
    else
    {
       <!--default right bar stuff -->
    }
</div>
@section scripts
    {
    @RenderSection("scripts", false)
}

1 个答案:

答案 0 :(得分:1)

你知道吗,没关系。

在我删除的部分(数字!)中,我调用了Azure分布式缓存。结果新的缓存客户端需要200毫秒!...我很惊讶。

无论如何,修复解决了它