我将为服务器控件输出整个HTML,如下所示:
public override void Render(HtmlTextWriter output)
{
output.Write(myStringBuilder.ToString());
}
myStringBuilder是一个StringBuilder对象,它是在单独的私有方法中手动构建的。
这是一种有效的方法吗?还是将HtmlTextWriter传递给我的私有方法并多次调用HtmlTextWriter.Write()更好?
最佳答案
将HtmlTextWriter
传递给您的方法效率更高,然后将其写入输出流,而不是缓冲多个字符串。
实际上,这就是核心.Net框架中的Web控件的方式。从高层次上讲,很多相同的HtmlTextWriter
向下传递到所有Render方法中。通常,在进行大量读/写操作时,处理流更有效……这最终就是您正在执行的操作(在这种情况下,该流为响应流)。
免责声明:这是一个小小的优化,除非您要创建整体式的东西……但是仍然是一个优化。
关于c# - 在ASP.NET中呈现服务器控件更有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2196519/