在ASP.net中动态生成HTML表会导致严重的性能问题吗?
我正在处理一个包含几个动态生成的表的页面,其中原始开发人员使用了大约以下逻辑:在ASP.net中动态生成HTML表会导致严重的性能问题吗?,html,asp.net,performance,html-table,Html,Asp.net,Performance,Html Table,我正在处理一个包含几个动态生成的表的页面,其中原始开发人员使用了大约以下逻辑: <table> <tr>...</tr> <asp:PlaceHolder ID="ph1" runat="server" /> </table> 在一个页面中,像这样的方法被用于总计10-15行,其中10-15列分布在4-5个表中。表结构已设置,因此也可以通过在html中硬编码表结构并在每个单元格中放置文字和标签来构建。页面本身存在一些性能问题。
<table>
<tr>...</tr>
<asp:PlaceHolder ID="ph1" runat="server" />
</table>
在一个页面中,像这样的方法被用于总计10-15行,其中10-15列分布在4-5个表中。表结构已设置,因此也可以通过在html中硬编码表结构并在每个单元格中放置文字和标签来构建。页面本身存在一些性能问题。这是可能导致业绩不佳的因素之一
问题是:
- 动态创建这么多的表单元并在代码隐藏中构建表,与硬编码表并使用文字/标签填充数据相比,这可能会带来很大的性能问题(即:值得切换吗)李>
- 或者更准确地说,在这种情况下,它不会如此重要(或者至少不足以保证将动态表生成重写为硬编码表+文本所需的时间)李>
Yaakov,我更担心的是在客户端使用这种呈现代码会发生什么。我是说。。。这取决于如何为每个单元格设置单元格呈现(格式、CSS、类/ID)
如果你最终得到了大类名/ID和内联CSS,则应考虑手动生成表结构(甚至不使用文字)。在我看来,所有这些表的内容都只是文本,因此您可以自然地呈现它,而不需要任何控制开销。简短回答:不太可能 详细回答:这取决于你对“重大”的定义。假设您在一台具有快速连接的体面服务器上生成一个典型的HTML页面,则故障情况如下:
这些数字显然是估算的——重要的一点是第(2)步相对于所有其他步骤的成本。当优化步骤(2)只占总成本的一小部分时,花时间进行优化并不能很好地利用开发人员的时间。正如CodeSpeaker所说,干净和可维护的代码是一项更好的投资。如果加载页面的总时间确实是一个问题,那么在进入管道的其余部分之前,首先解决主要成本问题(步骤1和步骤4)。因此,如果它在性能上得到了显著提高,那么为什么我无法衡量差异?我通常把“显著增强”理解为我会注意到的东西。。。
// Do lots of stuff
HtmlTableCell cell = new HtmlTableCell();
// set cell text, formatting, etc
ph1.Controls.Add(cell);
// repeat the above logic for every cell in the table