2013-07-08 30 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以上的控件。

与任何与性能相关的问题/答案一样,您应该根据需要测试和修改代码。不要求在不需要时增加性能;在大多数情况下,为性能编写的代码更难以支持。