虽然看起来创建服务器控件的“正确”方法是在CreateChildControls调用中构造所有子控件。但是因为很难知道它什么时候会被调用(这是性能优化的全部要点),我看到我们的大多数devs都是在OnInit或OnLoad中构造的。这在99%的情况下都是有效的。
在某些情况下我们必须使用CreateChildControls吗?
发布于 2009-10-01 14:17:56
您应该始终在CreateChildControls中构造您的子控件。这是在生命周期中初始化它们并将它们添加到控件树的适当时间。其中一个原因是EnsureChildContols方法被多次调用,如果需要,它会调用CreateChildControls。最好的实践,就这么做吧。
发布于 2009-10-01 14:12:02
阅读Control Execution Lifecycle
每当ASP.NET页面框架需要创建控件树时,都会调用CreateChildControls方法,并且此方法调用不限于控件生命周期中的特定阶段。例如,可以在加载页面时、数据绑定期间或rendering.期间调用CreateChildControls
发布于 2009-10-01 14:17:11
在性能方面,等待创建子控件将为服务器节省一些不必要的CPU时间。例如,如果在调用CreateChildControls()之前引发异常或中止线程,则会节省创建这些控件所需的时钟周期。
您认为在OnInit中创建控件比在CreateChildControls()中创建控件的性能更高的理由是什么?
https://stackoverflow.com/questions/1504193
复制相似问题