【问题标题】:How to use Web User Controls in ASP.NET efficiently如何在 ASP.NET 中有效地使用 Web 用户控件
【发布时间】:2012-09-18 03:34:46
【问题描述】:

目前,我在单个 aspx 页面上放置了 7 个用户控件,其中一些创建为菜单、页脚或页眉等。

我只是想知道总是利用 Web 用户控件来分隔不同的页面组件是否是一种好习惯。是否会对性能产生任何实际影响,例如在页面加载或服务器响应等方面,如果在 aspx 页面上将使用相对大量的控件?

我还注意到@ OutputCache 是缓存用户控件的一个选项,那么为页眉、页脚和那些类型的用户控件应用@OutputCache 是个好主意吗?

【问题讨论】:

    标签: asp.net user-controls ascx


    【解决方案1】:

    过早的优化是万恶之源

    - 唐纳德·克努斯。

    请勿使用输出缓存或任何其他形式的优化,除非您从分析中获得证据表明您需要使用它。输出缓存实际上更多是为了防止需要为经常访问的非个性化网页(例如高流量的首页)访问数据库后端。

    在性能方面,使用 UserControls 并没有什么本质上的错误 - 一切都在幕后编译成一个高性能程序集,该程序集直接通过输出缓冲区写入器返回文本。使用控件的唯一“成本”是对 Render 函数的额外 vtable 调用,以及每个控件的状态在内存中使用的额外字节。也就是说,它可以忽略不计。

    在页面的生命周期中,使用时间最多的步骤总是访问数据库或外部 Web 服务。渲染一个完整的页面大约需要一毫秒或更短的时间。如果您不相信我,请启用输出跟踪。

    也就是说,我质疑您为什么将 UserControls 用于常见的站点区域,例如页眉和页脚 - 这就是 MasterPages 的用途。

    【讨论】:

    • 我猜这更多是因为可重用性?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    相关资源
    最近更新 更多