2015-08-16 39 views
1

我只是好奇地知道,因为我还在学习布局页面,如果当我使用布局页面(例如SiteLayout.cshtml)并且有两个页面使用它进行渲染时(Index.cshtml,Results.cshtml)在@RenderBody()部分中,每次在Index.cshtml和Results.cshtml之间都会加载布局封装器部件?或者,_layout.cshtml页面是否异步加载@Renderbody()部分?在ASP.Net中使用布局页面时MVC是每次调用新页面时加载的布局?

只是在一些示例图片

enter image description here

enter image description here

回答

2

除非你已经设置甜甜圈缓存(http://weblogs.asp.net/scottgu/tip-trick-implement-donut-caching-with-the-asp-net-2-0-output-cache-substitution-feature)抛出时,SiteLayout.cshtml将得到分别针对每一个页面执行。

如果您SiteLayout有一些长/昂贵的操作,你想把它每加载时间,你可以使用上述甜甜圈缓存有它每一次X量每个用户执行一次。

如果你想完成前体执行/渲染(即异步整体速度的目的),你可以使用NuGet包称为CourtesyFlush(http://www.hanselman.com/blog/NuGetPackageOfTheWeekCourtesyFlushToFlushBuffersEarlierAndOptimizeTimeToFirstByte.aspx

的SiteLayout开始发送数据到浏览器