当我们构建我们的Web应用程序时,我们动态构建了大量HTML,并在运行时将它们输出到占位符。这样做的一个原因是控制我们的HTML输出以优化它的搜索引擎优化,现在我们已经做了一段时间,它变成了“我们做它的方式”。一般来说,当我们循环结果时。
我的问题是,
很多之间是否有任何性能差异 sb.append(someHTML)然后是一个placeholder.controls.add(new literalcontrol(sb.tostring)vs每次只使用placeholder.controls.add(new literalcontrol(someHTML)。
第二,我们应该使用其他方法来构建和重用HTML片段并在运行时注入数据吗?由于代码膨胀,我们放弃了标准的.net数据控件。
有什么想法吗?
答案 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框架。虽然许多“入门”文档从头开始,但至少有一些文档展示了如何开始将它集成到现有项目中。
此外,使用现有控件或至少特定的用户控件将帮助您更多,因为它使课程专注于其业务价值,而不是将业务目的与“管道”代码混合以构建您的控件。