代码和设计在同一页面中的asp.net页面性能

代码和设计在同一页面中的asp.net页面性能,asp.net,performance,Asp.net,Performance,当我在项目中添加asp.net网页时,我想到了一个查询。通常我们将服务器端代码放在codebehind文件中。如果我们将代码和页面设计标记放在同一个页面中,服务器端处理是否会有任何改进?我指的是这样的做法: <div> <%if (ViewState["user-id"] != null) {%> <div>Hi, You are welcome.</div> <%} else

当我在项目中添加asp.net网页时,我想到了一个查询。通常我们将服务器端代码放在codebehind文件中。如果我们将代码和页面设计标记放在同一个页面中,服务器端处理是否会有任何改进?我指的是这样的做法:

 <div>
     <%if (ViewState["user-id"] != null)
         {%>
    <div>Hi, You are welcome.</div>    
    <%}
      else
      {%>
      <div>Hi, please login or register.</div>
      <%} %>
 </div>

嗨,不客气。
您好,请登录或注册。
如果我们使用单独的代码隐藏文件,我们将在页面加载事件中执行所有这些操作,并根据测试使div元素可见、不可见。我们甚至可以在设计页面中只有一个div,并相应地设置其内部文本。有什么建议吗?

有趣的问题

如果它运行得更快,您将不得不用页面维护成本来抵消它。这种编码风格在经典的ASP时代很常见。标记可能是一个需要维护的噩梦,特别是如果您的编码团队和设计团队是不同的人

我的建议?仅当您想在语法中吐出值时才使用内联内容

<%= Greeting %>


对于涉及控制或循环结构的任何内容,都可以使用codebehind。我真的很想知道在线是否比codebehind快,但与使用这种方法构建的软件的维护相比,您可能获得的任何速度提升都将是微不足道的。

Paul完全正确……这将是一场维护的噩梦。不要这样做|


要回答原来的问题。。。不,这不会给你任何提速。充其量,这是收支平衡。但它实际上可以创造一个性能冲击。想想这段代码在ASP.NET引擎的后端实际做了什么,这应该是显而易见的。

@Paul,我同意。而且,如果我们有小型且可维护的web应用程序,那么通过在线编码在速度上的任何提高(如果可以实现的话)都将是一个巨大的胜利,特别是当应用程序具有显著的命中率时。谢谢。这是假设你的应用程序总是很小且可维护的。是的,我很想知道实际结果会是什么。你能解释一下这将是一个怎样的性能冲击吗?谢谢。更多的是直觉,而不是确凿的事实,对不起。:)我相信只要你在aspx中切换上下文,性能就会受到轻微的影响。但我可能错了。。。这很容易测试!根据我的经验,我记得将中继器逻辑从内联代码移动到由OnItemDataBound处理是一个很大的性能改进。但那可能不是苹果和苹果,我不记得确切的情况。谢谢你的信息。我记得我在某个地方读到Eval()对性能不友好。也许这就是为什么将数据绑定到codebehind更好的原因。不管怎样,我可以准确地衡量它的速度有多快?好吧,你必须用两种方法来编写代码来真正测试它。有很多方法可以衡量原始性能。。。最简单的方法是跟踪结果。如果需要精确的结果,请使用perfmon计数器。