c# - HtmlGenericControl ("a") 与 HtmlAnchor

标签 c# asp.net html performance

我正在调查为什么我的一个应用程序运行速度很慢。该应用程序生成并显示一个网格,并用工作任务(呈现为表格单元格)填充它。在每个任务中都有一个 <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 我有同样的想法,但在查找之后,实际上 HTMLAnchorHTMLGenericControl 都是从同一个父类:HTMLContainerControl。一个重要的区别是 HTMLAnchor实现 IPostBackEventHandler 来处理“ServerClick”事件。这肯定会增加一些缓慢......

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

相关文章:

c# - 为什么 'JavaScript' 或 'JavaScriptResult' 是反模式?

c# - MS平台下成为高级开发者需要学习的关键内容

c# - 在 c# 中将字符串转换为 xml 会出现空白错误

javascript - 如何更改 slider 中的图像 src?

c# - 将 Coldfusion 加密代码转换为 C#

c# - Serilog:如何记录,将具有不同 "origins"的消息记录到不同的文件

c# - 视频转换成flv

javascript - 为什么此代码不起作用?

html - 如何创建第一列固定且下一列可水平滚动的 HTML 表格

C# 更改嵌套类的方法修饰符