在标记页面(aspx)中添加服务器端代码是否会影响性能?

时间:2011-11-16 22:15:55

标签: c# asp.net performance

在我之前的工作中,我们的团队架构师强烈反对在标记中包含任何服务器端代码,甚至是简单的ID,因此不允许签入此代码:

<script>
    var el = document.getElementByID('<% SomeElement.ClientID %>')
</script>

相反,你必须通过Page.ClientScript.Register ...

将其注入javascript

他的理由是asp.net每次都必须重新编译一个页面,如果它包含那些服务器代码。

这听起来不适合我,但我找不到任何证据。

有什么想法吗?这会改变性能吗?我知道标记中的服务器端代码不好,因为调试和可读性方面的困难以及分离gcode形式标记的整个想法,但我只对性能差异感兴趣。

谢谢!

2 个答案:

答案 0 :(得分:11)

你的架构师错了。

ASP.NET编译一次页面,无论它是否包含任何C#代码。仅当它检测到自上次编译后ASPX文件已更改时,它才会重新编译页面。

答案 1 :(得分:0)

使用分析工具(如JetBrains中的dotTrace)明确告诉您性能指标。写2页......一个和一个没有服务器端的东西...并测试。