簡體   English   中英

在渲染之前/之后檢查條件

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM