Порядок инициализации враппера, его обновление и вызов деструктора

Для формирования нашего приложения нам необходимо ознакомится с порядком инициализации враппера и его связыванием с DOM элементом.

В начале HTML код помещается в тело страницы, после чего происходит создание враппера и вызывается метод fcf.NClient.Wrapper.initialize() в асинхронном режиме. Данный метод выполняет полную инициализацию враппера и соответственно при его перегрузке необходимо вызывать оригинальную версию от базового класса.

Во время инициализации и при обновлении, враппер выполняет связывание с шаблоном, во время которого выполняется привязка DOM событий, выполнение вложенных в HTML JavaScript блоков, создание и инициализация вложенных шаблонов. Во время данного процесса вызывается метод fcf.NClient.Wrapper.attach(), который также может быть перегружен. Но при перегрузке не забывайте вызывать метод базового класса.

Обновление шаблона может происходить в автоматическом режиме при обновлении аргументов шаблона (если опция шаблона autoUpdate равна true) или при явном вызове метода fcf.NClient.Wrapper.update(). Во время обновления происходит замена DOM дерева с последующим пересвязыванием шаблона. Но можно избежать замену DOM элементов, если опция шаблона merge равна true. В этом случае происходит слияние DOM элементов, что не приводит к их замене. Данный режим может использоваться в частности, если DOM элементу необходимо хранить внутренние данные.

Разрушение враппера происходит автоматически, когда DOM элемент шаблона исчезает со страницы, это выполняется встроенным уборщиком мусора или если шаблон был удален в случае перерисовки. Поэтому важно, что бы DOM элемент находился на странице все время, пока есть необходимость существования шаблона. Само разрушение враппера выполняется вызовом метода fcf.NClient.Wrapper.destroy(), при этом внутренний флаг объекта враппера _destroy устанавливается в значение true.