Освобождение ресурсов компонентов
Обновлен: Ноябрь 2007
Иногда перед удалением пользовательских клиентских компонентов, таких как компоненты поведения, элементы управления или базовые компоненты, необходимо освободить используемые ими ресурсы. В этом случае можно переопределить метод 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. В методе доступа set свойства enabled создается событие изменения состояния, к которому может привязаться разработчик, и которое позволяет ему проверять доступность компонента. Этот компонент также содержит частный метод _stopSimpleComponentProcess, на который возлагается задача по остановке всех процессов в очереди, способных инициировать событие tick. Этот метод также отключает функции, которые мог бы вызвать потребитель компонента. Напоследок вызывается метод dispose путем вызова метода Type.callBaseMethod, наследником которого он является.
Примечание. |
---|
Все зарегистрированные классы наследуют метод callBaseMethod. Дополнительные сведения см. в разделе Метод Type.callBaseMethod. |
См. также
Задачи
Создание настраиваемых невизуальных клиентских компонентов
Основные понятия
Определение пользовательских свойств компонентов и создание событий PropertyChanged