Sergey
сразу
Ale
Олекс
ща скину
Ale
echo просто пишет через sapi в поток, а document.write перестраивает объектную модель и начинает перерисовку
Олекс
генерация dom дерева на php происходит получается быстрее да?
Sergey
Sergey
он генерирует строку
Sergey
DOM это в памяти браузера
Олекс
Олекс
я имею ввиду теги и .тд
Sergey
если ты сначала сгенеришь строку на js и потом вставишь, будет намного быстрее
Sergey
когда js, есть небольшие паузы
Sergey
и перерисовка происходит на каждой итерации цикла
Sergey
это медлеенно
Misha Kulakovsky
не факт, если у тебя цикл синхронный то рендеринг будет ждать
Олекс
Я знаю, зато на js можно отдельный dom элемент перерендерить) это удобно)
Name
pro.js, который мы заслужили
Олекс
Narek
Как минимум версия с js медленнее т.к. нужно еще js код запустить, а в php версии браузер просто получает данные и сразу по мере получения рисует их
Misha Kulakovsky
я не верю что у тебя 1000 элементов 120мс генерировались
Misha Kulakovsky
ты не так замеряешь
Олекс
выше
Misha Kulakovsky
Name
я скинул код, посмотри
хреновый код, сравниваешь сложение строк в одной среде и операции с DOM в другой
на самом деле у тебя даже сами функции замера времени могут сильно отличаться, ты точно неправильно меряешь
Олекс
load 3 ms for JS
при первой загрузке
при повторных перезагрузках браузера цыфра уже не такая
Misha Kulakovsky
а какая
Олекс
100 - 120 ms
Misha Kulakovsky
ясно
Misha Kulakovsky
чини компьютер
Ale
Misha Kulakovsky
верно, и?
Ale
верно, и?
Цикл будет медленным, если на каждой итерации мутировать
Misha Kulakovsky
но не из-за ререндеринга, его там не будет
Ale
Ширина элементов, позиция и т.д.
Misha Kulakovsky
ну да, верно
Ale
А, не
Misha Kulakovsky
но это медленно по сравнению с чем?
Ale
Ale
А, не
Это будет синхронно только если юзануть геттер какой-нибудь
Misha Kulakovsky
хорошо, а строку ты когда скормишь в document.write или innerHTML, для нее не нужно будет создать все дом-элементы и точно так же их рассчитать?
Misha Kulakovsky
да плюс к тому и саму строку распарсить
Ale
Misha Kulakovsky
на каждый див не будет перерасчитываться всё дерево
Misha Kulakovsky
общий случай тут наверно сложно вывести, но можно придумать много способов оптимизировать те или иные моменты
Misha Kulakovsky
можно например заранее сегментировать дерево на независимые области, изменения в которых не аффектят другие области
Misha Kulakovsky
а вообще с точки зрения бразуера можно еще проще поступить, отложить перерасчет до конца выполнения твоего куска js, пока ты в нем не обращаешься за получением свойств нерасчитанного элемента
Misha Kulakovsky
в последнем случае форсируется расчет
Misha Kulakovsky
это просто мои мысли на счет того как это можно сделать, если что. я не знаю в каком браузере и как конкретно сделаны оптимизации
Misha Kulakovsky
но кому интересно можно погуглить reflow optimization
Дима
Ой здорово
Дима
Virtual dom изобретаете))
Misha Kulakovsky
virtual dom это оптимизация так сказать в юзерленде
Misha Kulakovsky
и она тоже помогает
Misha Kulakovsky
но тут речь именно о вставке отдельных элементов именно в DOM против вставки целого блока строкой
Дима
Ой здорово
Дима
Virtual dom изобретаете))
Ale
Да не, мы наоборот обсуждали как реальный дом работает
Misha Kulakovsky
в общем, нету разницы почти
Misha Kulakovsky
https://jsfiddle.net/0e0sthve/
Misha Kulakovsky
расчет действительно откладывается, пока не дернешь какое-нибудь размерное свойство
Misha Kulakovsky
и поскольку именно он, а не мутация ДОМа, занимает большую часть времени, то в принципе пофигу как добавлять
AI
Кто с монгой хорошо знаком ? У меня записываются сообщения в базу, от васи, пети, даниила. Как мне создать список всех кто писал сообщения?
AI
Имеется ввиду средствами монгодб это можно сделать?
Misha Kulakovsky
myMessageCollection.aggregate([ { $group: { _id: "$author" } } ])
Misha Kulakovsky
где author это нужное поле, его нужно префиксить долларом
🦜
че там с хакерскеми атаками сейчас?
🦜
мне комп выключить чи не?
Aleksey
AI
Михаил, спасибо.
🦜
пытаюсь запустить проект
npm run dev
вылетает ошибка
🦜