LINUX.ORG.RU

Отрисовка на стороне сервера (SSR) — За/Против?

 , ,


1

2

Если предполагается, что сайт будет иметь высокую нагрузку, например 10 тысяч пользователей, одновременно что-то комментирующих, открывающих, покупающих, ставящих лайки, – стоит ли делать отрисовку на сервере, если не обладаешь своим цодом а всего лишь vps?


SSR делают только по одной причине: лижут попку Яндексу. Чтобы тот мог просканировать их модный контент, представленный в новомодном магазинчике, который генерирует React и прочие новомодные фреймворки, чтобы попасть в поиск и впарить свою унылую продукцию очередной блондинке поколения Z

menangen ★★★★★
()
Последнее исправление: menangen (всего исправлений: 2)
Ответ на: комментарий от shiva

Ну так SSR только при первом старте отрабатывает. Все последующие запросы уже отрабатывают с клиента (JSON)

menangen ★★★★★
()
Ответ на: комментарий от menangen

правильно, суровые мужики свой магазин от поисковиков прячут

anonymous
()
Ответ на: комментарий от shiva

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

menangen ★★★★★
()

Если предполагается, что сайт будет иметь высокую нагрузку
например 10 тысяч пользователей

Куда 10к юзеров? В год? В жопу?

crutch_master ★★★★★
()

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

bvn13 ★★★★★
()

Каждый раз когда мне втирают про преимущества конкатенации json-строк перед конкатенацией html-строк, вспоминается один крупный сайтик, под который я писал скрейпилку. Моя скрейпилка делала в районе 5 запросов к их серверу чтобы выудить нужные данные, а главная их сайта для того, чтобы получить тот же объём информации, делала в районе 120 запросов. Каждый отдельно стоящий реактангулярный виджет на странице делал отдельный запрос, чтобы получить свой кусок данных, хотя у ендпойнта был очевидный параметр в духе «отдать всё что есть».

Да, криворучие разрабов одного конкретного сайта, но процесс «кидаем json через стенку фронтендерам, а там хоть трава не расти» такое если не поощряет, то по крайней мере не доставляет дискомфорта.

А про возможную экономию трафика, при написании подобных скрейпилок часто натыкался на json-ы с многократно продублированными в разных ключах данными. В итоге json весит в 3-4 раза больше, чем весила бы аналогичная html-ка.

PolarFox ★★★★★
()
Последнее исправление: PolarFox (всего исправлений: 1)
  1. SSR нужно делать не для всего подряд, а для тех страниц, трафик на которые ты собираешь из поисковых систем. Если у тебя трафик 10к пользователей одновременно, то что-то сомневаюсь, что все они поголовно лезут из гугла/яндекса - скорее всего, это другие источники трафика. А для других источников трафика SSR не нужен.

  2. SSR не работает постоянно, он выполняется только при первоначальной загрузке страницы, то есть не такая и большая это нагрузка, особенно потому что см. пункт 3.

  3. HTML, полученный в результате SSR, обычно кешируют - то есть SSR выполняется не при каждом запросе

  4. Если у тебя сайт с настолько динамическим контентом, где беспрерывно всё меняется, то SSR тебе не нужен.

  5. Если у тебя один NodeJS-процесс не справляется с отрисовкой, то ничего не мешает запустить ещё несколько, а перед ними поставить балансировщик трафика (тот же Nginx)

dimuska139 ★★
()
Последнее исправление: dimuska139 (всего исправлений: 1)

А че, веб-аппликню можно было не в ОС браузер, а на серверах исполнять? Где подписать петицию?

t184256 ★★★★★
()
Ответ на: комментарий от shiva

В момент 120-летия победы над германией? Метрика это «запросы в секунду», а не человеки в жопу одновременно.

От 100К RPS повод напрягаться, когда у тебя базы тупить начнут. А бакендные скрипты скейлятся без проблем.

SSR надо для роботов.

Vit ★★★★★
()

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

tz4678 ★★
()
Ответ на: комментарий от tz4678

Весьма спорное утверждение, учитывая, что сайт «Медузы» (например) - это SPA. Есть много и других примеров, это первое, что на ум пришло.

dimuska139 ★★
()

А раньше как то пхп складывать сточки не тормозил.

bga_ ★★★★
()
Ответ на: комментарий от shiva

но это ведь создаст огромную нагрузку на сервер.

Можно рендерить только шаблоны, в которых переменные подставляются на клиенте. А шаблоны кешировать в реверс-прокси.

Shadow ★★★★★
()
Ответ на: комментарий от menangen

SSR через ноду же работает

Ну, если шаблонизаторы на фронте и бэке с одним DSL работают, то почему обязательно на ноде?

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

Потому, что SSR без React и Vue никто и не использует, таких уникальных не встречал. И потом, та отрисовка HTML, что сделана на беке нодой из реакт приложения - уже подхватывается в браузере самим монолитным react приложением, чтобы два раза не перерисовывать. Но это в идеале. А как у нас на просторах СНГ делают - это я уже «догадываюсь»

menangen ★★★★★
()
Ответ на: комментарий от Princesska

А комменты и лайки зачем на стороне сервера рисовать?

Потому, что всякие яндекс маркеты (условно), которые юзают реакт для отрисовки комментов по продуктам, отзывы там, звёздочки, хотят чтобы и гугл смог найти, проиндексировать и впарить их страничку с покупкой для потенциального покупателя, да и сам робояндекс смог проиндексировать ваши чудесные отзывы о кофемолках

menangen ★★★★★
()
Ответ на: комментарий от menangen

SSR без React и Vue

Можно ещё с ангуляром :)
Я реакт ещё не пробовал, интересно в контексте react native, но выделить в приложении модель данных и шаблоны компонентов кажется разумным. А при таком выделении, какая разница, на чём бэк, на чём фронт?

Но это в идеале

!!!!!!!

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)

А тут вообще есть какие-то аргументы против?

ya-betmen ★★★★★
()
Ответ на: комментарий от tz4678

spa - это как правило весьма специфические приложения аля личный кабинет, которые никогда не индексируются

Я пишу лендинги СПА, они весьма индексируются.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

да, гугл умеет их индексировать, но личный кабинет, куда может попасть только ЗАРЕГИСТРИРОВАННЫЙ пользователь индексироваться НЕ ДОЛЖЕН

tz4678 ★★
()
Последнее исправление: tz4678 (всего исправлений: 1)
Ответ на: комментарий от tz4678

и индексация это плохо работает, если сохраненную копию откроешь, то там белая страница

tz4678 ★★
()

SSR нужен для ускорения первой загрузки страницы, чтоб не нужно было совершать по 10 походов до сервера и обратно, чтобы отобразить контент.

Without SSR: пустой index.html -> govnokod.23ad98df33a5.js -> data.json -> готовый HTML

With SSR: готовый HTML

anonymous
()

сам по себе вопрос «где делать отрисовку» - показатель убогости современных технологий. Равно как и довольно искусственное разделение бек/фронт.

MKuznetsov ★★★★★
()

Не правильно ты вопрос задаешь. Правильно - «в каком случае стоит, таки, отказаться от простого, как три копейки, рендеринга на сервере и начать страдать фигней с AJAX и JWT токенами?» Ответ - когда плюсы превышает минусы. Например, если делаешь JSON API и фронтенды к нему. Или для сайтов на одной странице. «10 тысяч пользователей, одновременно что-то комментирующих, открывающих, покупающих, ставящих лайки, – стоит ли делать отрисовку на сервере» - почему бы и нет? Только Varnish поставь и настрой, чтоб страницы/статические элементы в них кешировал.

anonymous
()

а ты когда жсон рисуешь, это сср?

deep-purple ★★★★★
()
Ответ на: комментарий от X512

Почему в треде столько комментариев от людей, которые не занимаются разработкой?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.