0

我在动态构建的网页上有一些自定义控件,可以在页面加载时将委托添加到其事件处理程序中。

如果页面被刷新,我是否需要担心由于每次页面加载时添加这些事件处理程序而导致内存泄漏,或者页面中的所有内容都会获得 GCd?

我似乎认为“页面”每次加载时都会被 gc'd,唯一持久的项目是会话变量之类的东西,但这来自我在 PHP 中做的事情。我想知道是否有人对 c#/asp.net 有任何具体的内容。

附加

我的代表当时只查看页面上的特定控件并与之交互,例如,当一个控件更改时,另一个控件默认选择相应的值。

4

1 回答 1

1

每次用户向 ASP.NET 网络服务器发出请求时,都会创建 Page 类的新实例并遍历整个生命周期。因此,如果您有一些属性,它们将使用其默认值进行初始化。之后,修改后的页面被呈现为 HTML 并返回给用户。您添加的委托并不完全清楚,因此一段代码可能会有所帮助,但我认为您应该没有任何问题。

因此页面被重新创建,会话数据被会话 cookie 获取,视图状态数据被特殊的输入隐藏字段获取。

页面生命周期可能对您有所帮助:http: //msdn.microsoft.com/en-us/library/ms178472 (v=vs.100).aspx

于 2013-05-23T10:15:31.143 回答