剃刀功能比用户控制功能需要更多的加载时间

时间:2014-12-16 04:43:39

标签: c# razor composite c1-cms

我只是想把我的usercontrol函数更改为razor函数。但是使用razor函数的页面加载时间超过了usercontrol函数,任何人都可以知道为什么这个时间。我的剃刀代码

 @inherits RazorFunction
@using System.Linq;
@using Composite.Data;
@using Atc.Data;
@using System.Web.UI.WebControls;
@using System.Collections.Generic;

@functions {
    public override string FunctionDescription
    {
        get  { return "Function for footer"; }
    }


}

<ul>
    <li>@@Copyright 2012 </li>
    @{
            using(DataConnection dCon =new DataConnection())
            {
            SitemapNavigator sn = new SitemapNavigator(dCon);

            PageNode p = sn.CurrentHomePageNode;

            List<PageNode> hiddenPages = dCon.Get<Page_Settings>()
                                       .Where(x => x.FooterNavVisibility == true).OrderBy(x => x.Position)
                                       .Select(x => sn.GetPageNodeById(x.PageId))
                                       .ToList<PageNode>();
foreach (var item in hiddenPages)
            {
    <li><a href="@item.Url">@item.Title</a></li>

}
            }
}
 <li>
           <!-- AddThis Button BEGIN -->
        <div class="addthis_toolbox addthis_default_style ">
        <a href="#" class="share"></a>
        <a class="addthis_button_compact"></a>
        <a class="addthis_counter addthis_bubble_style"></a>
        </div>

    </li>
</ul>
 <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-5008fecf0e8dcc29"></script>

enter image description here

1 个答案:

答案 0 :(得分:1)

可能是实际UserControl的执行时间计入了行&#34; ASP.NET控件:PageLoad,EventHandling,PreRender&#34;,目前需要91毫秒。

旁注:现在需要创建新的DataConnection / SitemapNavigator对象 - &gt;剃刀函数的基类上有Data和SitemapNavigator属性。

如果你想优化它,你可以f.e.缓存&#34; hiddenPages&#34;页面或页面设置数据类型更改中的变量和清除缓存。