我正在研究为什么我的一个应用程序运行得很慢。应用程序生成并显示一个网格,并用工作任务(呈现为表格单元格)填充它。每个任务内部都有一个 <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();
有没有人对这种明显的额外“开销”来自哪里有任何解释?
编辑
如果有人对我的解释感到困惑,我为同一个项目发布了另一个问题,该项目有一个 screenshot 。
最佳答案
@subkamran 我也有同样的想法,但查了一下之后,实际上 HTMLAnchor
和 HTMLGenericControl
都是从同一个父级划分的子类: HTMLContainerControl
。一个显着的区别是 HTMLAnchor 实现了 IPostBackEventHandler
来处理“ServerClick”事件。这肯定会增加一些缓慢的东西......
关于c# - HtmlGenericControl ("a") 与 HtmlAnchor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7080773/