【问题标题】:Performance of asp.net page with code and design in the same page代码和设计在同一页面的asp.net页面的性能
【发布时间】:2010-01-08 11:53:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: asp.net performance


    【解决方案1】:

    有趣的问题。

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

    我的建议?仅当您想在 tie-fighter 语法中吐出一个值时才使用内联内容。

    <%= Greeting %>
    

    对涉及控制或循环结构的任何事情都使用代码隐藏。我真的很想知道内联是否比代码隐藏更快,但是与维护使用这种方法构建的软件所带来的麻烦相比,您可能获得的任何速度提升都将是完全可以忽略不计的.

    【讨论】:

    • @Paul,我同意。而且,如果我们有小型且可维护的 Web 应用程序,那么通过内联编码获得的任何速度提升(如果可以实现的话)将是一个巨大的胜利,尤其是当应用程序具有很高的命中率时。谢谢。
    • 假设您的应用程序总是很小且可维护。
    【解决方案2】:

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

    要回答最初的问题...不,这不会给您带来任何速度提升。充其量是收支平衡。但它实际上可能会影响性能。想想这段代码在后端,在 ASP.NET 引擎中实际做了什么,它应该是显而易见的。

    【讨论】:

    • 是的,我很想知道实际结果是什么。你能解释一下这将如何影响性能吗?谢谢。
    • 直觉胜过任何确凿的事实,抱歉。 :) 我相信每当您在 aspx 中切换上下文时,性能都会受到轻微影响。但我可能是错的......这很容易测试!根据我的经验,我记得将转发器逻辑从内联代码移动到由 OnItemDataBound 处理是一个很大的性能改进。但这可能不是苹果和苹果,我不记得确切的情况。
    • 感谢您的信息。我记得我在某处读到 Eval() 对性能不友好。也许这就是为什么将数据绑定移动到代码隐藏更好。无论如何我可以准确地衡量这是如何更快?
    • 好吧,你必须用两种方式编写代码才能真正测试它。有许多方法可以测量原始性能……最简单的方法是跟踪结果。如果您需要精确的结果,请使用性能计数器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多