釋放元件資源
更新:2007 年 11 月
自訂用戶端元件 (如行為、控制項或基底元件) 在處置元件之前,可能必須先釋放資源。如果已處置元件,您可以覆寫 Sys.Component.dispose 方法,並在覆寫方法中釋放資源。這樣可確保在處置元件之前立即釋放資源。視元件的基底型別而異,元件的 dispose 方法可能繼承自 Sys.Component、Sys.UI.Behavior 或 Sys.UI.Control 基底類別。
請在元件的 dispose 方法中執行下列步驟:
處置或重設元件用過的任何資源。
停止元件可能在內部佇列的任何處理序,並停用元件消費者可能呼叫的任何功能。
叫用該基底類別的 dispose 方法。
注意事項: 提供公用屬性會很有用,該屬性可指示元件的啟用狀態,並在元件的 set 存取子中引發屬性變更事件。然後在 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 存取子方法會引發一個屬性變更事件,由於頁面開發工具可繫結至該事件,因此事件會啟用開發工具來測試元件的可用性。此元件也提供私用的 _stopSimpleComponentProcess 方法,來停止所有可能引發 tick 事件的佇列處理序。這個方法也會停用元件消費者可能叫用的功能。最後一項工作是叫用繼承的 Type.callBaseMethod 方法,以呼叫基底 dispose 方法。
注意事項: |
---|
所有註冊的類別都繼承 callBaseMethod 方法。如需詳細資訊,請參閱Type.callBaseMethod 方法。 |