Javascript.RU

Результаты опроса: Как вам UI
Похоже на унылое говно 20 68.97%
Однозначно буду использовать 7 24.14%
Пока не разобрался что это 2 6.90%
Голосовавшие: 29. Этот опрос закрыт

Создать новую тему Ответ
 
Опции темы Искать в теме
  #581 (permalink)  
Старый 04.06.2014, 04:35
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus1001
 
Регистрация: 03.06.2014
Сообщений: 101

Сообщение от nerv_
кстати, какая у тебя структура каталогов?
ооо, это отдельная тема) я завтра собирался (то есть через 6 часов примерно) запилить видеокурс по ui и по тому как архитектуру делать)

если в кратце то у меня 2 слоя, базовый и проэктный.
все 3 вида файлов, делятся на 2 эти слоя. Есть как базовые html так и проэктные. базовые css так и проэктные, базовые js так и проэктные.

Там короче эпик вин) если в случае с css то вроде все понятно, базовый слой это всякие .button .panel .row, а проектный это всякие .user-panel .main-menu, то как разбить на слои html и js??

В случае с js, по скольку у нас используется ui(ангуляр) который позволяет создавать директивы было принято сделать вот что:


Теперь есть такая сущности как веб компонент. Веб копоненты это такой кастомный html элемент который что то делает а настройки ему передаются через атрибуты. Так вот базовый слой создает веб компоненты (в виде директив element: true) вот, там и шаблоны директив и стили и логика. Эти компоненты могут наследовать друг друга, расширять и.т.п.

На проэктном же уровне мы из этих компонентов набираем сайт.
Логика у нас описывается в контроллерах, оформлиение в проэктных стилях, ну а разметка прямо в html.


Еще фишка в том что я использую coffee stylus и jade. для js css и html соответственно. По этому всю эту красоту прекрасно получается собрать в 3 соответствующих файлика. И выгрузить их в продакшен.



Сообщение от nerv_
Только еще ресурсы использую с недавнего времени.
ооой слууушай, годная идея, их то я спиздить и забыл совсем)))
у меня давно стояла идея запилить нечто такое тока с блекджеком и монашками)


Я короч хочу сделать что то типа чтобы когда к нам приходит массив сообщений, то UI автоматически пробегалась по ним конструктором Message и делала из них обьекты с методами. Буду называть такое ресурсы. изменишь сообщение, оно изменится и на сервере, если у тебя есть права на это. =)

Надо место чтобы их описывать и стиль описания, и место описания их взаимодействия с... короче подумать надо.

Годно годно, вначале вроде как описал $api а потом еще одну прослойку типа как ресурсы.

Запрашиваешь массив сообщений, пробегаешься по ним фиклом, меняешь что-то, или вызываешь метод remove у всех. А потом во время цикла $digest твой сервис автоматически составит запрос на удаление всех этих сообщений и отправит его =)

Последний раз редактировалось Maxmaxmaximus1001, 04.06.2014 в 05:25.
Ответить с цитированием
  #582 (permalink)  
Старый 04.06.2014, 10:00
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus1001
 
Регистрация: 03.06.2014
Сообщений: 101

пипееееееееееееец ребят ангуляр такое говнно такооое говно!!

я то думал всякие сервисы типа $interval нужны для того чтобы утечек не было, вот удаляется элемент или директива в коде которой ты применил интервал, и он автоматически очищается. АН НЕТ!!! там надо вручную сбрасывать!! ну что за жесть то?? я почему сразу очистку не сделал, я не знал как автоматчически подцеплять скоуп из которого был вызван интерфал, чтобы вешать обработчик на удаление этого скоупа. батя вторые сутки не спит думает как очистку памяти запилить, а они взяли и на юзера все спихнули, он вообще ни чего не должен знать ни о какой очистке. по крайней мере о внутреннефреймворковой очистке.

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

Maxmaxmaximus1001, я об этом тебе уже год назад говорил (и не только про это), более того, если рассматривать SPA, то это только один из огромного количество обязательных требований
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 04.06.2014 в 10:54.
Ответить с цитированием
  #584 (permalink)  
Старый 04.06.2014, 10:59
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus1001
 
Регистрация: 03.06.2014
Сообщений: 101

Сообщение от kobezzza
я об этом тебе уже год назад говорил
ты ни разу не говорил что в ангуляре нет автоочистки памяти

а вообще я охренел, у них там чтобы через сервис скоуп обновить надо обновить ВЕСЬ корневой скоуп!! со всеми ДЕТЬМИ!!!! уму непостижимо бля! Пришел ответ от сервера - обновим весь скоуп. В этот момент делалась анимация? Похуй, обновим весь скоуп!!! Поставил интервал на 100 миллиекунд? Будем 10 раз в секунду обновлять весь скоуп!!!

жеесть, я уже придумал новый подход к иньецированию зависимостей. тока там будут геттеры и сеттеры, так что придется забить на ie8 но я думаю это давно пора сделать.

Последний раз редактировалось Maxmaxmaximus1001, 04.06.2014 в 11:01.
Ответить с цитированием
  #585 (permalink)  
Старый 04.06.2014, 20:53
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus1001
 
Регистрация: 03.06.2014
Сообщений: 101

http://javascript.ru/forum/offtopic/47728-unylogo-tresha-tred.html
Сообщение от kobezzza
вместо того чтобы сказать "спасибо"
Ты видимо что то пропустил? Мы с тобой уже эту тему обсуждали, и обсуждали что ты был прав и дал годный совет, и я спасибо говорил. Ты просто забыл) сейчас уже нет смысла спасибо говорить ведь та тема уже обмусолина. Щас тема совсем другая, что "в ангуляре нет автоматической очистки" зачем в этой теме то тебе спасибо говорить)? Ты че, правда забыл что я тебе спасибо раз десять сказал?? Когда я еще только начинал ui писать ты сказал что это очень важно и надо сразу на это задаток делать. Рассказал про то что у тя есть виджеты и у них конструкторы и деструкторы) я там всякие спасибо сказал раз 20. А потом спустя пол года, я тоже эту тему поднял и спасибо сказал). Тебе надо еще? Тебе надо больше? Отлично, как поднимится эта тема поблагодарю еще раз).

Но смысл моего выражения не "ого, ребят, я короче че придумал, надо делать уборку мусора", нет, смысл моего выражения "а помните пол года назад кобеза говорил что надо уборку делать, так вот, и все такие типа "да, да, надо", так вот, А АНГУЛЯР НЕ ДЕЛАЕТ!!!

Последний раз редактировалось Maxmaxmaximus1001, 04.06.2014 в 20:56.
Ответить с цитированием
  #586 (permalink)  
Старый 04.06.2014, 20:57
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus1001
 
Регистрация: 03.06.2014
Сообщений: 101

Унылого треша тред
kobezzza, лоооооооооооооооооооооооо олл!! ты гений)!111111
ты надоумил меня на кое что щас)! вот щас реально ОЧЕРЕДНОЕ СПАСИБО)!!11


ты просто гений ты даже не осознаешь на сколько)!1 я щас просто метод destruct директивам запилю да и все!111
Ответить с цитированием
  #587 (permalink)  
Старый 04.06.2014, 20:58
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

[47728] Унылого треша тред
Цитата:
Тебе надо еще? Тебе надо больше? Отлично, как поднимится эта тема поблагодарю еще раз).
Ладно, прощаю

Лови новое дровишко:
помимо сборки мусора в настоящих SPA бич - это фризы браузера при переходе по страницам, т.е. 2 абсолютно разные страницы, жмамагаем и понеслось:

1) очистка памяти старой страницы, удаление старого DOM (а у нас стена сообщений с модным "вечным" скроллом где пролистано 20 страниц)
2) инициализация новой страницы, инициализация виджетов, блоков и т.д.

Очень часто бывает, что эти 2 пункта фризят браузер более чем на 50мс (у меня было и по 500мс) и это реально выглядит как полное зависание вкладки. Решение: очистка мусора и инициализация делается порционно и параллельно, т.е. setTimeout в руки и поехали (также хорошо иметь АПИ для "прогретого" потока, т.е. иметь пул Worker-ов), только вот это всё должно делать на уровне фреймворка, а не писаться для каждого блока отдельно, т.е. делаться без разработчика. Как определять что чистить и рисовать первым? Ответ: то, что на экране (т.е. если скролл скрол на середине экрана, то идиотизм начинать сверху страницы). Как узнать что на экране, если ещё никакого CSS нет? Ответ: запоминать примерную геометрию всех блоков, кешировать в локальном хранилище и учитывать при последующих загрузках.

Т.к. мой фрейворк закрытый, то ты раз уж делаешь либу для SPA, то делай её честно Как сделаешь дам новое задание, которое скорее всего заставит всё переписывать

По поводу поддержки браузеров: не будь глупцом, через пол года макс уже выйдет ИЕ12, а при условии что ты честно будешь писать либу, то до её использования пройдёт пол года минимум, так что забивай на все ИЕ кроме 11, ибо всё равно сегмент задач на которые претендует твоя либа таков, что он если и заработает в дрених браузерах, то будет нереально тормозить из-за дурацких полифилов. Юзай сеттеры, геттеры, новые структуры данных и не заморачивайся в общем.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 04.06.2014 в 21:25.
Ответить с цитированием
  #588 (permalink)  
Старый 04.06.2014, 21:36
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от kobezzza
Решение: очистка мусора и инициализация делается порционно и параллельно
порционно - верю
параллельно - не верю. Воркеры не имеют доступ к dom

Сообщение от kobezzza
Как узнать что на экране, если ещё никакого CSS нет? Ответ: запоминать примерную геометрию всех блоков, кешировать в локальном хранилище и учитывать при последующих загрузках.
звучит сложно и избыточно. Зачем делать за браузер то, что должен делать он?

Сообщение от kobezzza
Как сделаешь дам новое задание, которое скорее всего заставит всё переписывать
это 5

Сообщение от kobezzza
По поводу поддержки браузеров: не будь глупцом, через пол года макс уже выйдет ИЕ12, а при условии что ты честно будешь писать либу, то до её использования пройдёт пол года минимум, так что забивай на все ИЕ кроме 11, ибо всё равно сегмент задач на которые претендует твоя либа таков, что он если и заработает в дрених браузерах, то будет нереально тормозить из-за дурацких полифилов.
Сообщение от kobezzza
т.е. setTimeout в руки
тогда уж setImmediate

Сообщение от Maxmaxmaximus1001
Щас тема совсем другая, что "в ангуляре нет автоматической очистки"
что вы говорите)
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #589 (permalink)  
Старый 04.06.2014, 21:42
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
порционно - верю
параллельно - не верю. Воркеры не имеют доступ к dom
Ну логично, что если юзать setTimeout, то в конечно счёте будет последовательно, но я имел ввиду что на один "тик" немного почистить память и немного создать.

Про Воркеры: доступ Воркеру к DOM очень даже делается: организуем протокол общения и в путь, но у меня так не делается и я не могу сказать даёт это профит или нет.

querySelectorAll('div', function (err, res) {
    res[0].innerHTML(function (err, res) {
        ...
    });
});


Цитата:
звучит сложно и избыточно. Зачем делать за браузер то, что должен делать он?
Я говорю про SPA (одностраничный сайт проще говоря), там браузер ничего не делает. А подход влоб: т.е. грохнули всю старую структуру и рисуем новую вызывает ужасные фризы. Я 2 года занимаю разработкой SPA, так что можете поверить, ну или набейте шишки сами

Цитата:
тогда уж setImmediate
Не, лучше setTimeout (именно в этом случае), т.к. он даёт время браузеру на рендеринг CSS и т.д.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 04.06.2014 в 21:48.
Ответить с цитированием
  #590 (permalink)  
Старый 04.06.2014, 21:48
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus1001
 
Регистрация: 03.06.2014
Сообщений: 101

Сообщение от kobezzza
1) очистка памяти старой страницы, удаление старого DOM (а у нас стена сообщений с модным "вечным" скроллом где пролистано 20 страниц)
2) инициализация новой страницы, инициализация виджетов, блоков и т.д.
хм, у меня для этого есть директива data-if она удаляет обьект из dom намертво и деструктуризует скоуп и все обработчтки - короче очищтску делает. И если туда передано true то она снова все инициализирует.

Если мы делаем странички то нет смысла чтобы в фоне висели съинициализированные другие стнанички, по этому мы делаем их data-if.
Вот. То есть это не обычный css-show который просто анимацию скрывания делает).

Спасибо, дело в том что я в своих страницах использую как раз css-show а не data-if ))) потому что у data-if анимации нет. Щас я просто запилю ему анимацию, и начну использовать его =)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обсуждений тред cyber Оффтопик 2130 03.10.2018 08:10
React'а тред melky Оффтопик 246 13.11.2016 08:07
Webpack'а тред nerv_ Сборка проекта, утилиты 58 07.05.2016 13:46
Github Atom'а тред melky Оффтопик 16 01.04.2015 07:44