
Михаил
12.05.2017
16:20:43

Name
12.05.2017
16:21:14
я скинул код, посмотри
хреновый код, сравниваешь сложение строк в одной среде и операции с DOM в другой
на самом деле у тебя даже сами функции замера времени могут сильно отличаться, ты точно неправильно меряешь

Alexey
12.05.2017
16:22:01
load 3 ms for JS
при первой загрузке
при повторных перезагрузках браузера цыфра уже не такая

Михаил
12.05.2017
16:22:39
а какая

Google

Alexey
12.05.2017
16:23:29
100 - 120 ms

Михаил
12.05.2017
16:25:14
ясно
чини компьютер

Aleh
12.05.2017
16:25:33

Михаил
12.05.2017
16:26:06
верно, и?

Aleh
12.05.2017
16:26:31
верно, и?
Цикл будет медленным, если на каждой итерации мутировать

Михаил
12.05.2017
16:26:45
но не из-за ререндеринга, его там не будет

Aleh
12.05.2017
16:27:27
Ширина элементов, позиция и т.д.

Михаил
12.05.2017
16:28:50
ну да, верно

Aleh
12.05.2017
16:28:55
А, не

Михаил
12.05.2017
16:28:57
но это медленно по сравнению с чем?

Aleh
12.05.2017
16:29:06

Google

Aleh
12.05.2017
16:29:31
А, не
Это будет синхронно только если юзануть геттер какой-нибудь

Михаил
12.05.2017
16:29:41
хорошо, а строку ты когда скормишь в document.write или innerHTML, для нее не нужно будет создать все дом-элементы и точно так же их рассчитать?
да плюс к тому и саму строку распарсить

Aleh
12.05.2017
16:30:07

Михаил
12.05.2017
16:30:57
на каждый див не будет перерасчитываться всё дерево

Aleh
12.05.2017
16:33:21

Михаил
12.05.2017
16:38:42
общий случай тут наверно сложно вывести, но можно придумать много способов оптимизировать те или иные моменты
можно например заранее сегментировать дерево на независимые области, изменения в которых не аффектят другие области
а вообще с точки зрения бразуера можно еще проще поступить, отложить перерасчет до конца выполнения твоего куска js, пока ты в нем не обращаешься за получением свойств нерасчитанного элемента
в последнем случае форсируется расчет
это просто мои мысли на счет того как это можно сделать, если что. я не знаю в каком браузере и как конкретно сделаны оптимизации
но кому интересно можно погуглить reflow optimization

Дмитрий
12.05.2017
16:49:26
Ой здорово
Virtual dom изобретаете))

Михаил
12.05.2017
16:51:34
virtual dom это оптимизация так сказать в юзерленде
и она тоже помогает
но тут речь именно о вставке отдельных элементов именно в DOM против вставки целого блока строкой

Дмитрий
12.05.2017
16:53:56
Ой здорово
Virtual dom изобретаете))

Aleh
12.05.2017
17:06:35
Да не, мы наоборот обсуждали как реальный дом работает

Google

Михаил
12.05.2017
17:35:02
в общем, нету разницы почти
https://jsfiddle.net/0e0sthve/
расчет действительно откладывается, пока не дернешь какое-нибудь размерное свойство
и поскольку именно он, а не мутация ДОМа, занимает большую часть времени, то в принципе пофигу как добавлять

Alex
12.05.2017
18:20:53
Кто с монгой хорошо знаком ? У меня записываются сообщения в базу, от васи, пети, даниила. Как мне создать список всех кто писал сообщения?
Имеется ввиду средствами монгодб это можно сделать?

Михаил
12.05.2017
18:24:12
myMessageCollection.aggregate([ { $group: { _id: "$author" } } ])
где author это нужное поле, его нужно префиксить долларом

Roman
12.05.2017
18:40:54
че там с хакерскеми атаками сейчас?
мне комп выключить чи не?

Aleksey
12.05.2017
18:41:11

Alex
12.05.2017
19:20:46
Михаил, спасибо.

Roman
13.05.2017
10:49:14
пытаюсь запустить проект
npm run dev
вылетает ошибка
гугление пока не дает результат

Admin
ERROR: S client not available

Vlad
13.05.2017
10:51:28
замени SET на export

Anatoly
13.05.2017
10:54:07
NODE_ENV=development npm start

Roman
13.05.2017
10:55:46
где?) Я просто не особо шарю в линухе

Google

Anatoly
13.05.2017
10:56:13
В консоле
Из каталога проекта
Вон у тебя терминал где надо

Roman
13.05.2017
10:58:58
я просто запускаю npm run dev
я ничего не понял)

Евгений
13.05.2017
11:16:01
ку. Может сегодня кто ответит...
кто-нибудь сталкивался с модулем схожим по функционалу с альбомом фотографий в ВК? Что нужно: хочу передавать модулю, например, список словарей с ID фото и её превью и чтобы так же можно было сортировать через drag and drop эти фотографии, как в ВК.

Андрей
13.05.2017
15:07:44
Всем привет! Никак не разрулю простую, казалось бы, задачу. Есть канвас. На нем много изображений png с прозрачностью. Мне нужно сделать ярче одно из них. Как это сделать? Метод getImageData() не прокатывает, т.к. он вырезает квадрат, а у меня не квадратные изображения. Когда применяю маску, она применяется ко всем остальным изображениям, а не только к конкретному. Т.е. остальные перестают отображаться. Как быть? Может быть можно получить доступ к пикселям картинки ДО ее отрисовки на холсте?
Roman, если еще актуально. Открой файл package.json. Там найди свойство "scripts", в нем "dev" и удали из строки "SET"

Alex
13.05.2017
15:13:15
Насколько я помню там что то было с работой по слоям. но может это была фишка какой то либы. и по пиксельно можно с канвой работать.

Андрей
13.05.2017
15:15:37
Для работы по слоям есть либы, но я нативно хочу. Для работы попиксельно с холстом есть метод getImageData(), но мне он не подходит. Потому что, к примеру, есть картинка дерева на фоне картинка стены. Сквозь дерево частично видно стену. Мне нужно затемнить дерево. Если я возьму дерево методом getImageData(), то и стена захватится
Да и вообще, на каждом кадре вырезать из холста куски, менять их и вставлять обратно - слишком затратно. Было бы круто взять картинку, один раз пройтись по ней по пикселям и сохранить, и потом ее уже вставлять

Leon
13.05.2017
15:16:39
может быть пререндерить картинку на другом канвасе?
http://devbutze.blogspot.ru/2014/02/html5-canvas-offscreen-rendering.html

Андрей
13.05.2017
15:17:36
Такая идея была, но я подумал, что она слишком извращенская для такой простой задачи, и так никто не делает)

Leon
13.05.2017
15:17:50
))

Андрей
13.05.2017
15:18:49
По сути я хочу просто взять картинку, затемнить и вставить на канвас) Неужели для такой цели не обойтись без второго вспомогательного канваса

Anatoly
13.05.2017
15:19:50
Страдай

Андрей
13.05.2017
15:20:57
Уже)

Herman
13.05.2017
16:26:15
Все браузерные игры, которые я встречал, позволяет играть на нескольких вкладках. Т.е. для каждая вкладки свой отдельный персонаж, мир и т.д. Как сервер разгранчивает это? Ведь заголовки пакетов одинаковые, как я понимаю
Получается какдая вкладка для этой гипотетической игры также имеет дополнительные идентификационные данные, которые отправляются на сервер в Data(полезная нагрузка)?
Я оказался прав, только забыл от http, которы выше

Google

Илья
13.05.2017
20:38:48
Здравствуйте. Как можно использовать локальные файлы в проекте, то есть в самом index.html, сервер почему-то ни в какую не видит их. Пробовал абсолютные и относитьельные пути прописывать, но тщетно. Angular 4 Quickstart