我在研究为什么我的一个应用程序运行得很慢。应用程序生成并显示网格,并将其填充为工作任务(呈现为表格单元格)。在每个任务中,都有一个<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();有没有人能解释一下这种明显的额外开销是从何而来?
编辑
如果有人对我的解释感到困惑,我为同一个项目发布了另一个问题,这个项目有一个屏幕截图。
发布于 2012-03-19 05:37:46
@subkamran我也有同样的想法,但是在查找之后,HTMLAnchor和HTMLGenericControl实际上都是来自同一个家长HTMLContainerControl的子类。一个重要的区别是HTMLAnchor实现了IPostBackEventHandler来处理"ServerClick“事件。这无疑增加了一些缓慢的..。
https://stackoverflow.com/questions/7080773
复制相似问题