共用方式為


釋放元件資源

更新:2007 年 11 月

自訂用戶端元件 (如行為、控制項或基底元件) 在處置元件之前,可能必須先釋放資源。如果已處置元件,您可以覆寫 Sys.Component.dispose 方法,並在覆寫方法中釋放資源。這樣可確保在處置元件之前立即釋放資源。視元件的基底型別而異,元件的 dispose 方法可能繼承自 Sys.ComponentSys.UI.BehaviorSys.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 方法

請參閱

工作

建立自訂的隱藏式用戶端元件

概念

定義自訂元件屬性和引發 PropertyChanged 事件