Asp.net mvc 3 缓慢加载第一页-ASP.NET MVC
我在我的页面上使用了miniprofiler,因为我认为我的第一页和其他一些页面有很长的加载时间。我从miniprofiler开始,但我认为它是一个非常好的工具。我有一个结果:Asp.net mvc 3 缓慢加载第一页-ASP.NET MVC,asp.net-mvc-3,entity-framework,ninject,mvc-mini-profiler,Asp.net Mvc 3,Entity Framework,Ninject,Mvc Mini Profiler,我在我的页面上使用了miniprofiler,因为我认为我的第一页和其他一些页面有很长的加载时间。我从miniprofiler开始,但我认为它是一个非常好的工具。我有一个结果: http://localhost:50783/192.2+0.0 从数据库2.2+186.9获取文章 查找:索引866.4+190.9 渲染:索引1839.0+1058.1 查找:_第530.0+2809.0条 部分渲染:第64.3+3339.2条 部分渲染:第8.2条+3404.2条 部分渲染:第12.5+341
192.2+0.0http://localhost:50783/
- 从数据库2.2+186.9获取文章
- 查找:索引866.4+190.9
- 渲染:索引1839.0+1058.1
- 查找:_第530.0+2809.0条
- 部分渲染:第64.3+3339.2条
- 部分渲染:第8.2条+3404.2条
- 部分渲染:第12.5+3413.0条
- 部分渲染:第8.7+3426.2条
- 部分渲染:第7.9+3435.4条
- 渲染部分:_leftmenu64.8+3520.4
- 渲染部分:_LogonPartial3.3+3556.3
- 渲染部分:_rightmenuutest2530.1+3591.2
- 渲染部分:_nextmatch3.5+4088.7
- 渲染部分:4.7+4226.5
- 渲染部分:_页脚21.2+6137.4
@model SkMoravanSvitavka.Models.Article
<h3>@Html.ActionLink(Model.Title, "Zobrazit", "Clanek", new { id = Model.ArticleID }, null)</h3>
<p>@Html.Raw(Html.ArticleImageToSmall(Html.Article(Model.Text))) </p>
@Html.ActionLink("Počet komentářů:" + Model.Comments.Count, "Zobrazit", "Clanek", new { id = Model.ArticleID }, null)
尝试使用渲染部分插入部分:
foreach (var item in Model)
{
Html.RenderPartial("_Article", item);
}
确保在发布模式下编译项目时也进行测试。众所周知,ASP MVC在调试模式下执行额外的反射来查找视图,以获得更全面的调试功能。我添加了一些代码,但我不确定您需要哪些代码,所以希望这些代码对您有所帮助,或者您可以说我可以添加哪一个。这是应用程序中首次使用EF查询吗?在这种情况下,您将面临EF视图的生成。为什么
RenderPartial
比Partial
好?@jrummell由于结果将在执行期间直接写入响应流,因此速度更快。
public ActionResult Index()
{
var profiler = MiniProfiler.Current;
using (profiler.Step("Getting articles from database"))
{
var model = repo.GetLatestArticles(5);
return View(model);
}
}
foreach (var item in Model)
{
Html.RenderPartial("_Article", item);
}