[英]Checking condition before/after RenderPartial performance
假设有一个RenderPartial
,它检查某个条件是否为真,然后渲染页面。
首先检查条件,然后调用RenderPartial
有什么性能上的好处? 我确信这项技术对于RenderAction
来说是性能上的优势,因为我们可以在MVC生命周期步骤中实现本质上的短路。 但是我在考虑,因为RenderPartial
可以直接进入视图,所以它可能没有相同的好处。
示例(检查RenderPartial中的条件):
myPage.cshtml
@model Namespace.AdObject
@{ Html.RenderPartial("~/Views/Ad.cshtml", Model); }
〜/ Views / Ad.cshtml
@model Namespace.AdObject
@if (Model != null && Model.AdScript != null)
{
// render the ad
}
示例(在RenderPartial之前检查条件):
myPage.cshtml
@model Namespace.AdObject
@if (Model != null && Model.AdScript != null)
{
Html.RenderPartial("~/Views/Ad.cshtml", Model);
}
〜/ Views / Ad.cshtml
@model Namespace.AdObject
// render the ad
RenderPartial()
是写入响应输出流的void方法。 通过执行部分视图生成的HTML输出将呈现到调用(或父)视图中。 即使model为null
,写操作也会很耗时,并且会降低效率。 因此,就性能而言,在RenderPartial
之前检查条件会更好。
我会说最好在RenderPartial调用之前进行检查。 即使您的“部分视图”很小,它仍然可以归因于Web服务器对.cshtml文件的额外文件系统IO调用,这是性能的瓶颈。 第一次检查时,可以避免一起进行IO调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.