18 - это не выполнение, а пока просто оценка - оптимизация JS . Браузеру, чтобы нарисовать страницу нужно учесть все параметры. Пререндеринг - это и есть учет всех параметров для построения страницы. Например, страница загрузилась, а потом в js appednChild и надо пересчитывать заново. Любое получение вычисленного css свойства из js требует его просчета. Плагины, изменяющие страницу, и разные скрипты вносят свой вклад в страницу и весь этот вклад надо учесть. Пререндеринг осуществляется в несколько раундов, что вы и можете наблюдать.
Максим Тимофеев: Alexander: не буду с вами спорить. Каждый советует, что любит, лишь я один советую, с чего реальнее начать. Где вы увидели, что автор ищет работу?
Вы читали, что автор написал о себе "Сейчас уровень не высок, даже очень низок.". Сейчас пишет на процедурном, а вы ему пихаете здоровенные фреймворки, которые не только с mvc, а ещё с ORM, шаблонизаторами, роутерами и прочими дикими для начинающего вещами.
Максим Тимофеев: Зачем? Да потому что у Mikhail Tsai слишком мало знаний даже для yii2. А вот с codeigniter можно начать: в нём почти ничего нет, кроме mvc, и на нём можно спокойно освоить азы ООП и mvc. Я понимаю, что слишком старо, но для обучения он подходит, как ни что другое.
Мой совет: у соединительных таблиц, организующих связь многие-ко-многим, не надо создавать дополнительный столбец id, достаточно только (A_id | B_id), эти же два столбца являются составным первичным ключом.
Артем: А почему лучше не использовать Anorm? Про slick я знаю, но мне обычно приходится либо писать довольно громоздкие иногда специфичные для данной СУБД sql запросы, либо всё взаимодействие происходит через хранимые процедуры. Нужно ли смотреть в сторону slick при таких условиях?
Ingword: Ничего не меняет. Одно - специализация = приносит деньги, другое - хобби. А что чем выбрать решать только вам, и никто на тостере или где-то ещё не сможет выбрать за вас.