我正在研究为什么我的一个应用程序运行得很慢。应用程序生成并显示一个网格,并用工作任务(呈现为表格单元格)填充它。每个任务内部都有一个 <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();

有没有人对这种明显的额外“开销”来自哪里有任何解释?

编辑

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

最佳答案

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

关于c# - HtmlGenericControl ("a") 与 HtmlAnchor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7080773/

10-11 02:02