我正在调查为什么我的一个应用程序运行速度很慢。该应用程序生成并显示一个网格,并用工作任务(呈现为表格单元格)填充它。在每个任务中都有一个 <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/