Рендеринг на стороне сервера со следующим. js против традиционного SSR - PullRequest
0 голосов
/ 09 февраля 2020

Я очень привык к подходу, когда SSR означал, что страница получила полный refre sh и получила полный HTML от сервера, где она обрабатывается с помощью razor / pub / other в зависимости от стека бэкэнда. Поэтому каждый раз, когда пользователь нажимает на навигационные ссылки, он просто отправляет запрос на сервер, и вся страница обновляет sh, получая новый HTML. Это традиционная ССР, которую я понимаю.

Однако в случае SPA мы имеем, например, реакцию или angular, где мы получаем почти пустой HTML в начале, а затем JS, так что все приложение инициализируется на стороне клиента. Затем мы можем получить REST API для получения json данных и рендеринга представлений во внешнем интерфейсе (маршрутизация и рендеринг на стороне клиента) без каких-либо ссылок на страницы sh. Нам даже не нужен какой-либо сервер.

Теперь у меня возникла проблема с пониманием того, как SSR (например, next. js) работает с реакцией.

Из того, что я читаю, первый запрос возвращает полный HTML + CSS (что помогает с SEO и c - я понял), но что происходит позже? Что происходит после что первый / начальный запрос? Инициализируется ли все реагирующее приложение в браузере, а затем оно работает ТОЧНО, как если бы это был обычный SPA (имеется в виду, что теперь у нас есть маршрутизация и рендеринг на стороне клиента, без необходимости делать запросы к этому серверу)? Другими словами, делает следующее. js по-прежнему делает какие-либо запросы к серверу после первоначального или с этого момента действует как обычный SPA с CRA?

Я потратил много время чтения, но все статьи в основном посвящены начальному запросу и SEO и времени до первого байта, рисуют и т. д. c. и я просто пытаюсь понять, почему он называется SSR, поскольку он, кажется, работает иначе, чем традиционный SSR, который я описал в начале.

1 Ответ

1 голос
/ 09 февраля 2020

делает следующее. js по-прежнему выполняет какие-либо запросы к серверу после первоначального или с этого момента действует как обычный SPA с CRA?

Вы правильно поняли. Первый (начальный) запрос обрабатывается сервером, а после этого интерфейс обрабатывает маршрутизацию (по крайней мере, в случае Next. js).

Если вы хотите увидеть пример OpenCollective строится с помощью Next. js. Попробуйте поиграть с ним и увидеть вкладку Network в DevTools.

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

Это называется SSR, потому что приложение эффективно отображается на сервере. Тот факт, что внешняя маршрутизация заботится после первоначального рендеринга, не устраняет тот факт, что сервер выполнял работу по рендерингу приложения, в отличие от пользовательского компьютера.

...