2013-07-08 34 views
2

我目前正在查看ASP.NET WebForms應用程序,其中一個Web窗體顯示一個HTML表格,該表格完全由代碼隱藏中的StringBuilder對象構建,然後設置爲InnerHtmldiv元素。Web控件vs StringBuilder

我正在考慮將此轉換爲使用Web控件(最有可能是Repeater),以便更好地呈現前端可見性。

使用Web控件而不是純代碼隱藏邏輯有什麼性能優勢嗎?或者這對渲染引擎是否相同?

+0

我認爲這是更多的代碼維護,但沒有性能相關。 StringBuilder可以用於狀態等動態消息。哦,是的,webcontrols有viewstate,但如果它不是你的要求,請考慮禁用它。 – Sunny

+0

Repeater很好,因爲它會爲你建立html,但是它比stringbuilder慢。對我來說,我使用中繼器更清潔,我會用它作爲內部頁面或頁面,不會讓我的許多人看到。如果它是一個繁重的流量頁面,我會使用一個字符串生成器,因爲它速度更快,但它的確有它的缺點。例如,當您添加html時,它可能會在代碼背後變得混亂。在另一個不,我會用字面控制,而不是一個字符串生成器。 StringBuilder sb = new StringBuilder; sb.Append(「

Hello World

」); litControl.text = sb.toString(); – Neo

回答

2

要回答具體問題,使用StringBuilder比使用服務器控件(例如中繼器)具有更好的性能。

然而,從支持的角度來看,您最好堅持一些對您和其他任何可能後來支持您的代碼的人來說都非常明顯,該頁面在做什麼。

在性能是主要因素的場合,我每次都使用StringBuilder以上的控件。

與任何與性能相關的問題/答案一樣,您應該根據需要測試和修改代碼。不要求在不需要時增加性能;在大多數情況下,爲性能編寫的代碼更難以支持。