哪个最有效? ascx vs ashx vs aspx

时间:2013-11-21 17:17:04

标签: c# user-controls webpage httphandler

哪一项效率最高?假设它们都输出相同的字符串。

加载.LoadControl是否也使用WebClient

b  = new StringBuilder();

// ascx
new UserControl().LoadControl("/_includes/test1.ascx").RenderControl(new HtmlTextWriter(new StringWriter(b)));    
Console.Write(b.ToString());

// ashx
b = new StringBuilder(new WebClient().DownloadString(site.Url + "/_includes/test2.ashx"));
Console.Write(b.ToString());

// aspx
b = new StringBuilder(new WebClient().DownloadString(site.Url + "/_includes/test3.aspx"));
Console.Write( b.ToString());

1 个答案:

答案 0 :(得分:2)

效率顺序(根据您的情况,最多或最少):

用户控制,处理程序(ashx),网页(aspx)。

UserControl将由IIS上的相同请求处理。另外两个场景需要2个请求,一个用于初始页面,另一个用于辅助处理程序或网页。

在处理程序和网页的情况下加载外部数据会有细微差别,但处理程序的重量轻于网页,因此在这种情况下它会胜出。

最后,我不确定在后两种情况下使用StringBuilder的目的是什么。

最重要的是,您应该测试这些不同的方法。我的“答案”基于一些广泛的假设。你的millage可能非常。