如何有效地在ASP.NET中使用Web用户控件

问题描述 投票:0回答:1

目前,我在一个aspx页面上放置了7个用户控件,其中一些创建为Menu,Footer或Header等。

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

我也注意到@ OutputCache是一个缓存用户控件的选项,所以将@ OutputCache应用于Header,Footer和那些用户控件是个好主意吗?

asp.net user-controls ascx
1个回答
2
投票

过早优化是万恶之源

- 唐纳德克努特

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

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

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

也就是说,我怀疑为什么你将UserControl用于公共站点区域,比如页眉和页脚 - 这就是MasterPages的用途。

© www.soinside.com 2019 - 2024. All rights reserved.