구성 요소 리소스 해제

업데이트: 2007년 11월

동작, 컨트롤 또는 기본 구성 요소와 같은 사용자 지정 클라이언트 구성 요소가 삭제되기 전에 리소스를 해제해야 하는 경우가 있습니다. 이 경우 Sys.Component.dispose 메서드를 재정의하고 재정의된 메서드에서 리소스를 해제할 수 있습니다. 이렇게 하면 구성 요소가 삭제되기 바로 전에 리소스가 해제됩니다. 구성 요소는 해당 기본 형식에 따라 Sys.Component, Sys.UI.Behavior 또는 Sys.UI.Control 기본 클래스에서 dispose 메서드를 상속합니다.

구성 요소의 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');
}

이 예제의 구성 요소에서는 dispose 메서드에서 false로 설정된 enabled 속성을 제공합니다. enabled 속성의 set 접근자 메서드에서 페이지 개발자가 바인딩할 수 있는 속성 변경 이벤트를 발생시키므로 개발자가 구성 요소의 가용성을 테스트할 수 있습니다. 또한 이 구성 요소에는 아직 tick 이벤트를 발생시킬 수 있는 대기 중인 프로세스를 중지하는 전용 _stopSimpleComponentProcess 메서드가 있습니다. 또한 메서드는 구성 요소 소비자에 의해 호출될 수 있는 기능을 해제합니다. 마지막으로, 상속된 Type.callBaseMethod 메서드를 호출하여 기본 dispose 메서드를 호출합니다.

참고:

모든 등록된 클래스는 callBaseMethod 메서드를 상속합니다. 자세한 내용은 Type.callBaseMethod 메서드를 참조하십시오.

참고 항목

작업

사용자 지정 비시각적 클라이언트 구성 요소 만들기

개념

사용자 지정 구성 요소 속성 정의 및 PropertyChanged 이벤트 발생시키기