在我之前的工作中,我们的团队架构师强烈反对在标记中包含任何服务器端代码,甚至是简单的ID,因此不允许签入此代码:
<script>
var el = document.getElementByID('<% SomeElement.ClientID %>')
</script>
相反,你必须通过Page.ClientScript.Register ...
将其注入javascript他的理由是asp.net每次都必须重新编译一个页面,如果它包含那些服务器代码。
这听起来不适合我,但我找不到任何证据。
有什么想法吗?这会改变性能吗?我知道标记中的服务器端代码不好,因为调试和可读性方面的困难以及分离gcode形式标记的整个想法,但我只对性能差异感兴趣。
谢谢!
答案 0 :(得分:11)
你的架构师错了。
ASP.NET编译一次页面,无论它是否包含任何C#代码。仅当它检测到自上次编译后ASPX文件已更改时,它才会重新编译页面。
答案 1 :(得分:0)
使用分析工具(如JetBrains中的dotTrace)明确告诉您性能指标。写2页......一个和一个没有服务器端的东西...并测试。