Как работает SSR-Rendering в NODEJS и почему он отличается от PHP?

Добрый день.
Перевел проект с PHP на Nuxt ssr, производительность сильно просела, судя по ab тестам.
Добрые люди сказали, что nuxt (node) рендерит контент на сервере не также, как это делает PHP и проигрышь в производительности очевиден и оправдан. В nodejs для рендеринга работает рендер-функция и вообще эта технология гораздо сложнее, а поэтому медленнее.
Я всегда думал что работает это так:
- PHP принимает запрос, выполняет скрипт, "собирает" разметку и отдает браузеру.
- Nodejs всё делает примерно также. В случае с современными JS фреймворками (react, vue) выбор nodejs для серверного рендеринга обусловлен тем, что бОльшая часть кода на JavaScript будет выполняться на сервере, а код который не может быть выполнен на сервере (DOM, Window, XHR etc) должнен быть обработан в завимисости от того, где он запущен.
Ну то есть вместо nodejs можно было бы и PHP использовать для серверного рендеринга и тогда не было бы никакой разницы между серверным рендерингом и обычной (по старинке) генерации ответа на сервере, когда переход по страницам - это всегда новый запрос на сервер.
Объясните, пожалуйста, в чем разница между рендерингом на PHP и на Nodejs и почему второй гораздо менее производительый?
  • Вопрос задан
  • 2494 просмотра
Решения вопроса 1
Robur
@Robur
Знаю больше чем это необходимо
SSR-это запуск фронтендового js-фреймворка на ноде заранее,(вместо работы в браузере) и отдача клиенту того что получилось, вместе с фреймворком, дальше все это продолжает работать на клиенте.
на php этого просто нет.

почему второй гораздо менее производительый?

правильно вопрос звучит так "почему то что у меня на nodejs написано медленнее того что у меня было на php" ответ как вы понимаете зависит от того что именно у вас там написано. В целом рендеринг на ноде не медленнее рендеринга в php сам по себе. Может у вас так все настроено, может как раз ssr тормозит
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
rockon404
@rockon404
Frontend Developer
Потому что на PHP вы максимум используете шустрый шаблонизатор.
Nuxt использует для рендера Vue, вычисления которого несколько сложней.

Ну то есть вместо nodejs можно было бы и PHP использовать для серверного рендеринга.

Хотите - используйте, но вы лишитесь преимуществ, которые дает изоморфный код.

Сравнивать производительность PHP и Node, в вашем случае, не корректно. Так как дело в конкретных инструментах которые вы используете.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Spice IT Recruitment Москва
До 200 000 руб.
Взахлёб Ульяновск
от 90 000 до 120 000 руб.
IQ Oрtiоn Software Санкт-Петербург
от 140 000 до 170 000 руб.