[英]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.