HtmlGenericControl(“a”)与HtmlAnchor

时间:2011-08-16 15:29:44

标签: c# asp.net html performance

我在研究为什么我的某个应用程序运行速度很慢。应用程序生成并显示一个网格,并使用工作任务填充它(呈现为表格单元格)。在每个任务中都有一个<a href="...,它会显示有关该任务的更多信息。

由于这是从代码隐藏中动态构建的,因此我使用HTMLTableRows/Cells创建行和单元格,然后使用Controls属性添加HTMLAnchors。每当我设置属性时,我都会使用HTMLAnchor.HRefHTMLTableCell.ColSpan等。

我注意到,如果我使用通用HTMLGenericControl,然后使用其Attributes集合,例如

HTMLGenericControl a = new HTMLGenericControl("a");
a.Attributes["href"] = task.getLink();

它的运行速度明显快于我认为是做同样事情的首选方式:

HtmlAnchor a = new HTMLAnchor;
a.HRef = task.getLink();

有没有人有任何解释这个明显的额外开销&#39;来自?

编辑

如果有人对我的解释感到困惑,我发布了同一个项目的另一个问题,该项目有screenshot

1 个答案:

答案 0 :(得分:5)

@subkamran我有同样的想法,但在查找之后,实际上HTMLAnchorHTMLGenericControl都来自同一个父级:HTMLContainerControl。一个显着的区别是HTMLAnchor实现了IPostBackEventHandler来处理“ServerClick”事件。这肯定会增加缓慢......