06.12.2013, 19:30
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
kobezzza,
+1
Даже добавить нечего, все лаконично и доходчиво. Но напишу, раз чукча писатель ))
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
06.12.2013, 20:16
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
|
|
06.12.2013, 20:48
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Сообщение от kobezzza
|
У меня например все виджеты наследуются от класса Defer, который реализует АПИ: this.setTimeout, this.setInterval, this.setImmediate, this.ajax, this.proxy, this.setQueue и т.д. т.е. используя это АПИ вместо голых вызовов мы полностью устраняем проблему возможных утечек памяти и багов, т.к. сами виджеты знают об этих обработчиках и отменяют их выполнение и чистят память автоматически в деструкторе.
|
Плюсую. ( точнее плюсанул бы если бы мог )
Аналогично юзаю деструкторы. Только у меня виджет еще может иметь дочерние виджеты.
что то вроде.
panel=new Panel({
title:'hello world 1'
});
panel2=new Panel({
title:'hello world 2'
});
input=new Input({
model:exampleModel,
field:'name'
})
panel1.add(panel2)
panel2.add(input);
У каждого виджета есть свойсво childrens в которой метод add может добавлять другие виджеты. Если panel1 будет удален, то деструктор panel1 в цикле вызовет деструктор для каждого виджета в childrens. Тобиш сначало сработает деструктор для panel1 который вызовет деструктор для panel2, а деструктор panel2 вызовет деструктор для input.
В результате удаление виджета panel1 приведет к удалению всех вложенных виджетов с очисткой памяти для каждого виджета.
Вообще я считаю что виджет в фреймворке должен создаваться двумя путями, через new widgetname(); и декларативно, поскольку в разных ситуациях виджеты удобно создавать по разному. Если вы создаете систему виджетов ктоорую можно использовать и декларативно и императивно то удобнее с начало реализовать императивное создание виджетов а декларативное создание реализовывать как надстройку над императивным. Если в случае чисто декларативных виджетов иерархия виджетов особо не нужна и достаточно вызвать деструктор для всех виджетов внутри какого либо dom элемента, то в случае двойного подхода нужно учитывать иерархию. Дополнительным бонусом при учете иерархии становится предельно удобное обращение к родителям и детям (просто по свойствам childrens и parent).
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 06.12.2013 в 21:46.
|
|
06.12.2013, 20:51
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
kobezzza, у меня нет виджетов больше( нет такой сущности как виджет, есть сущность контроллер и директивы, и они связываются в точках крепления через скоуп, наверное на ветках скоупа я и буду отслеживать все эти удаления и очистку. по сути при удалении какой-то директивы (DOM) должны удалится использующие её контроллеры, а они хранятся в скоупе, а скоуп, ну вы поняли, к нему имеют доступ все, так что директива при удалении может лезть в скоуп и давать ему сигнал мыл " все что ниже этой ветки - удаляй мыл, а он посмотрит а у него там всякие контроллеры хуеллеры и директивы понаоставляли обработчиков, и очистит их и самоудалится=)
спасибо КобИИИИИза
А кто вообще ангуляр не юзал?
Последний раз редактировалось Maxmaxmaximus3, 06.12.2013 в 21:10.
|
|
06.12.2013, 21:13
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
DjDiablo, у мя тоже самое
Цитата:
|
А кто вообще ангуляр не юзал?
|
Я только баловался с ним, в реальном проекте не юзал.
|
|
06.12.2013, 21:14
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
kobezzza, такое чувство что ты не юзаешь ангуляр и не юзал. Я прав?
|
|
06.12.2013, 21:14
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Maxmaxmaximus3
|
kobezzza, такое чувство что ты не юзаешь ангуляр.
|
Правильно, потому что я юзаю БЭМ
Я изучал ангуляр, чтобы понять что за зверь и основные фичи, смотрел интересующие внутренние реализацию, сравнивал с реализацией нокаута, но в реальном проекте не юзал.
|
|
06.12.2013, 21:34
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
Ты можешь реализовать БЭМ и на ангуляре =) я не совсем понимаю это противопоставление, БЭМ это верстка и разметка, ангуляр это связь интерфейса и логики. Где противопоставление то?
|
|
06.12.2013, 21:41
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Maxmaxmaximus3
|
Ты можешь реализовать БЭМ и на ангуляре =) я не совсем понимаю это противопоставление, БЭМ это верстка и разметка, ангуляр это связь интерфейса и логики. Где противопоставление то?
|
Ну БЭМ - это не только вёрстка и разметка, и там оч много вещей не совместимых по идеологии с Ангуляром. То, что ты имеешь ввиду под БЭМ - это на самом деле АНБ (Абсолютно Независимые Блоки): эти термины постоянно путают В общем могу сказать что для моего проекта, над которым я сейчас работаю - это оптимальный вариант, технический нюанс.
Последний раз редактировалось kobezzza, 06.12.2013 в 21:45.
|
|
06.12.2013, 21:45
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
kobezzza, покажи хоть один свой сайт, желательно один из лучших)
я просто ни одного сайта еще не сделал, и работаю развозчиком обогревателей, мне хочется посмотреть на что ровняться =)
|
|
|
|