2010-02-04 48 views
2
渲染服務器控件

我輸出爲我的服務器控件的整個HTML如下更高效:這對於ASP.NET

public override void Render(HtmlTextWriter output) 
{ 
    output.Write(myStringBuilder.ToString()); 
} 

myStringBuilder是手工建立在一個單獨的私有方法的StringBuilder對象。

這是一個有效的方法嗎?或者是最好將HtmlTextWriter傳遞給我的私有方法並對HtmlTextWriter.Write()進行多次調用?

+0

你需要你控制輸出爲HTML嗎? – 2010-02-04 00:23:50

+0

是的輸出通常是HTML片段。 在某些情況下,我正在對DataTable進行XSL轉換並輸出結果(這是HTML)。 – frankadelic 2010-02-04 01:06:54

回答

6

HtmlTextWriter傳遞給您的方法會更有效,然後它將寫入輸出流,而不是緩衝多個字符串。

事實上,這是核心.Net框架中的web控件的方式。在高層次上,將相同的HtmlTextWriter向下傳遞到所有Render方法中很多。通常,當進行大量的讀/寫操作時,處理流更加高效......這就是你最終做的事情(流是這種情況下的Reponse流)。

免責聲明:這是一個小的優化,除非你正在創建一個單一的...但一個優化少。

+0

對於代碼的愛,不要認爲在混合中投擲stringbuilder會有所幫助。 :) – 2010-02-04 00:48:39