.net占位符& StringBuilders

时间:2009-06-30 05:19:35

标签: .net asp.net performance coding-style

当我们构建我们的Web应用程序时,我们动态构建了大量HTML,并在运行时将它们输出到占位符。这样做的一个原因是控制我们的HTML输出以优化它的搜索引擎优化,现在我们已经做了一段时间,它变成了“我们做它的方式”。一般来说,当我们循环结果时。

我的问题是,

很多之间是否有任何性能差异 sb.append(someHTML)然后是一个placeholder.controls.add(new literalcontrol(sb.tostring)vs每次只使用placeholder.controls.add(new literalcontrol(someHTML)。

第二,我们应该使用其他方法来构建和重用HTML片段并在运行时注入数据吗?由于代码膨胀,我们放弃了标准的.net数据控件。

有什么想法吗?

4 个答案:

答案 0 :(得分:0)

如果不确切知道“plc”对象的作用,很难说。

要找到的一种方法是使用ASP.NET跟踪,它会为您提供渲染每个元素所需的时间(以秒为单位)。您可以通过

启用此功能
Trace="true"

在<%@%>中该页面的标题。

关于问题的第二部分,您可能希望查看ASP.NET MVC框架以获取新工作。这是为了完成您所描述的内容。

答案 1 :(得分:0)

作为一项操作看来,基于我所说的,新的一般是最慢的事情.Append是你最快的建议之一。但是,与所有性能调整一样,您应该使用某种类型的分析器进行测试。

我个人使用JetBrains的dotTrace

答案 2 :(得分:0)

我怀疑“这没关系”。杰夫阿特伍德有一篇关于微优化的好文章:The Sad Tragedy of Micro-Optimization Theater(虽然与你正在做的不一样,但它强调了花时间在某些“优化”上的事实并不值得)。

其他人已经指出了您的代码和不同方法,并查看您的应用程序的结果。

我的直觉是,除非你有一个非常大的控件层次结构或者你正在操作的一大堆文本,否则你不会看到各种方法之间存在很大差异。

我想说最重要的是确保你有一个可维护的解决方案。一种选择是编写自己的服务器控件,可以嵌入到SEO优化页面中。

答案 3 :(得分:-1)

如果您指的是与webforms相关的控件的代码膨胀,您可能需要查看ASP.NET MVC框架。虽然许多“入门”文档从头开始,但至少有一些文档展示了如何开始将它集成到现有项目中。

此外,使用现有控件或至少特定的用户控件将帮助您更多,因为它使课程专注于其业务价值,而不是将业务目的与“管道”代码混合以构建您的控件。