我在研究为什么我的某个应用程序运行速度很慢。应用程序生成并显示一个网格,并使用工作任务填充它(呈现为表格单元格)。在每个任务中都有一个<a href="...
,它会显示有关该任务的更多信息。
由于这是从代码隐藏中动态构建的,因此我使用HTMLTableRows/Cells
创建行和单元格,然后使用Controls
属性添加HTMLAnchors
。每当我设置属性时,我都会使用HTMLAnchor.HRef
,HTMLTableCell.ColSpan
等。
我注意到,如果我使用通用HTMLGenericControl
,然后使用其Attributes
集合,例如
HTMLGenericControl a = new HTMLGenericControl("a");
a.Attributes["href"] = task.getLink();
它的运行速度明显快于我认为是做同样事情的首选方式:
HtmlAnchor a = new HTMLAnchor;
a.HRef = task.getLink();
有没有人有任何解释这个明显的额外开销&#39;来自?
编辑
如果有人对我的解释感到困惑,我发布了同一个项目的另一个问题,该项目有screenshot。
答案 0 :(得分:5)
@subkamran我有同样的想法,但在查找之后,实际上HTMLAnchor
和HTMLGenericControl
都来自同一个父级:HTMLContainerControl
。一个显着的区别是HTMLAnchor实现了IPostBackEventHandler
来处理“ServerClick”事件。这肯定会增加缓慢......