Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #421 (permalink)  
Старый 06.12.2013, 19:30
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

kobezzza,
+1

Даже добавить нечего, все лаконично и доходчиво. Но напишу, раз чукча писатель ))
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #422 (permalink)  
Старый 06.12.2013, 20:16
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #423 (permalink)  
Старый 06.12.2013, 20:48
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 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.
Ответить с цитированием
  #424 (permalink)  
Старый 06.12.2013, 20:51
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

kobezzza, у меня нет виджетов больше( нет такой сущности как виджет, есть сущность контроллер и директивы, и они связываются в точках крепления через скоуп, наверное на ветках скоупа я и буду отслеживать все эти удаления и очистку. по сути при удалении какой-то директивы (DOM) должны удалится использующие её контроллеры, а они хранятся в скоупе, а скоуп, ну вы поняли, к нему имеют доступ все, так что директива при удалении может лезть в скоуп и давать ему сигнал мыл " все что ниже этой ветки - удаляй мыл, а он посмотрит а у него там всякие контроллеры хуеллеры и директивы понаоставляли обработчиков, и очистит их и самоудалится=)

спасибо КобИИИИИза

А кто вообще ангуляр не юзал?

Последний раз редактировалось Maxmaxmaximus3, 06.12.2013 в 21:10.
Ответить с цитированием
  #425 (permalink)  
Старый 06.12.2013, 21:13
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

DjDiablo, у мя тоже самое


Цитата:
А кто вообще ангуляр не юзал?
Я только баловался с ним, в реальном проекте не юзал.
__________________
kobezzza
code monkey
Ответить с цитированием
  #426 (permalink)  
Старый 06.12.2013, 21:14
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

kobezzza, такое чувство что ты не юзаешь ангуляр и не юзал. Я прав?
Ответить с цитированием
  #427 (permalink)  
Старый 06.12.2013, 21:14
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Maxmaxmaximus3 Посмотреть сообщение
kobezzza, такое чувство что ты не юзаешь ангуляр.
Правильно, потому что я юзаю БЭМ

Я изучал ангуляр, чтобы понять что за зверь и основные фичи, смотрел интересующие внутренние реализацию, сравнивал с реализацией нокаута, но в реальном проекте не юзал.
__________________
kobezzza
code monkey
Ответить с цитированием
  #428 (permalink)  
Старый 06.12.2013, 21:34
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Ты можешь реализовать БЭМ и на ангуляре =) я не совсем понимаю это противопоставление, БЭМ это верстка и разметка, ангуляр это связь интерфейса и логики. Где противопоставление то?
Ответить с цитированием
  #429 (permalink)  
Старый 06.12.2013, 21:41
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Maxmaxmaximus3 Посмотреть сообщение
Ты можешь реализовать БЭМ и на ангуляре =) я не совсем понимаю это противопоставление, БЭМ это верстка и разметка, ангуляр это связь интерфейса и логики. Где противопоставление то?
Ну БЭМ - это не только вёрстка и разметка, и там оч много вещей не совместимых по идеологии с Ангуляром. То, что ты имеешь ввиду под БЭМ - это на самом деле АНБ (Абсолютно Независимые Блоки): эти термины постоянно путают В общем могу сказать что для моего проекта, над которым я сейчас работаю - это оптимальный вариант, технический нюанс.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 06.12.2013 в 21:45.
Ответить с цитированием
  #430 (permalink)  
Старый 06.12.2013, 21:45
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

kobezzza, покажи хоть один свой сайт, желательно один из лучших)
я просто ни одного сайта еще не сделал, и работаю развозчиком обогревателей, мне хочется посмотреть на что ровняться =)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск плагина Менеджер картинок serhio11 jQuery 2 27.01.2014 15:43
Автопереключатель картинок Vempel Общие вопросы Javascript 0 03.10.2013 18:36
Смишных видео с намеком тред godofjavascript Оффтопик 4 30.12.2012 23:50
Одинаковая высота картинок Irina13 Javascript под браузер 15 29.02.2012 12:06
Загрузчик картинок Livanderiaamarum Общие вопросы Javascript 1 15.01.2012 17:21