释放组件资源

来源:百度文库 编辑:神马文学网 时间:2024/04/25 00:09:30
释放组件资源

更新:2007 年 11 月

自定义客户端组件(如行为、控件或基组件)可能必须在释放组件之前释放资源。如果确实如此,您可以重写 Sys.Component.dispose 方法,并在重写的方法中释放资源。这样可确保恰好在释放组件之前释放资源。组件将从 Sys.ComponentSys.UI.BehaviorSys.UI.Control 基类继承 dispose 方法,具体取决于组件的基类型。

在组件的 dispose 方法中,请遵循以下步骤:

  • 释放或重置组件使用的任何资源。

  • 停止组件可能进行内部排队的任何进程,并禁用组件使用者可能调用的任何功能。

  • 调用基类的 dispose 方法。

    说明:

    一种有用的做法是提供一个公共属性,该公共属性指示组件的启用状态,并在其 Set 访问器中引发一个 property-changed 事件。然后在 dispose 方法中,设置该属性以指示组件已被禁用。这将使页开发人员能够检测组件的可用性。

下面的示例演示如何重写组件类的原型中定义的 dispose 方法。

复制代码
dispose: function() {// Call set_enabled so the property-changed event is raised//  in order to notify any attached listeners.this.set_enabled(false);// Stop any component processes so that// they are not called after disposal.this._stopSimpleComponentProcesses();// Call the base dispose method.Samples.SimpleComponent.callBaseMethod(this, 'dispose');}

此示例中的组件提供了 enabled 属性,在 dispose 方法中将该属性设置为 false。enabled 属性的 Set 访问器方法将引发页开发人员可绑定到的 property-changed 事件,从而使开发人员能够测试组件的可用性。此组件还具有一个私有 _stopSimpleComponentProcess 方法,该方法负责停止仍可引发 tick 事件的任何已排队进程。该方法还禁用可能会由组件使用者调用的功能。最后一项任务是,通过调用继承的 Type.callBaseMethod 方法调用基 dispose 方法。

说明:

所有已注册的类都继承 callBaseMethod 方法。有关更多信息,请参见 Type.callBaseMethod 方法

 请参见

任务

创建自定义非可视客户端组件

概念