Рубрики
Без рубрики

Клиентский рендеринг на стороне сервера рендеринга

Первоначально опубликовано Jakub Klimek на алталогии История блога рендеринга SINC … Теги от реагирования, JavaScript, GATSBY, WEBDEV.

Первоначально опубликовано Jakub Klimek в блоге AltaLogy

История рендеринга решения

С момента заря веб-истории единственный способ получить ваш сайт на экране с помощью SSR. Вам пришлось загрузить свой HTML & Styles на сервер, он составлял все, а затем вы были готовы просматривать с полностью заполненным HTML.

Однако это были времена, когда страницы в основном содержались картинки и текст, как первый веб-сайт в истории → http://info.cern.ch/ , что выглядит так:

Быстро прыгает в наши дни, больше не так. Текущие сайты ближе к веб-приложениям, таких как Facebook, Twitter или eBay. Мир Интернета вырос и стал более требовательным. Потребности пользователей увеличились, люди хотят отправлять сообщения, получить его в режиме реального времени, смотреть видео, иметь больше взаимодействия с веб-сайтом. Разработчики начали представлять веб-сайты на стороне клиента с использованием фреймворков, таких как угловой, позвоночник, Ember, Rect.js e.t.c.

Если вы спрашиваете себя, какой метод лучше, CSR или SSR – прежде всего, вы должны спросить себя – что вы хотите построить или достичь?

  • Узнать реагировать?
  • Создайте приложение для одного страницы?
  • Хотите построить интерфейс для нового веб-приложения?
  • Построить сайт в основном статично?

На этом выборе это зависит от того, что вы должны принять решение.

Задний план

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

Скорость запроса и ответа зависит от нескольких вещей:

  • Скорость подключения к Интернету
  • Расстояние между вами и сервером
  • Оптимизация CDN
  • Сколько пользователей пытаются открыть свой сайт в один момент
  • Как сайт оптимизирован для загрузки

Когда веб-страница загружена, она может быть отображена в браузере ( рендеринг на стороне клиента ) или на сервере ( рендеринг на стороне сервера ). Каждый немного другой и имеет свои плюсы и минусы.

Рендеринг на стороне клиента

Что такое рендеринг на стороне клиента?

С помощью решения для рендеринга на стороне клиента, когда пользователь открывает ваш сайт, его браузер делает запрос на сервер, и пользователь получает ответ с одним HTML-файлом без какого-либо содержимого, экрана загрузки, например, E.C.C. Это пустая страница, пока браузер не извлекает все связанные Javascripts и позволяет браузеру компилировать все перед рентом контента.

Клиент-рендеринг ProS:

  • Быстро рендеринг после начальной нагрузки
  • Быстрее навигация
  • Нижняя нагрузка на сервер
  • Замечательно для веб-приложений

Клиентский рендеринг годов:

  • медленная начальная нагрузка
  • непредсказуемая производительность – вы никогда не знаете, откроет ваш пользователь и «компилировать» ваш сайт на мобильном устройстве с очень медленным подключением к Интернету или Не обновлен браузер
  • Решения маршрутизации на стороне клиента могут задержать вспыльчивость.
  • SEO – если вы не реализованы правильно
  • Начальные REQ загружает страницу, CSS, макет, JS,
  • Некоторые или все контент не включены

Серверный рендеринг

Что такое рендеринг на стороне сервера?

Как я уже упоминал выше, – SSR не новая концепция. Он использовался с момента первого Backend Solution, как PHP или Java. Серверный рендеринг – это метод для визуализации вашего сайта. Когда пользователь открывает вашу страницу, его браузер делает запрос на сервер, а сервер генерирует готов к HTML.

Серверный рендеринг ProS:

  • SEO дружелюбный – SSR гарантирует ваши страницы легко индексируются поисковыми системами
  • Лучшая производительность для пользователя – пользователь увидит контент быстрее
  • Оптимизация социальных сетей: Когда люди пытаются опубликовать свою ссылку на Facebook, Twitter и т. Д. Затем приятный предварительный просмотр появится на заголовке страницы, описание и изображение.
  • Общий код с узлом Backend
  • Пользователь-машина менее занята
  • Лучше всего для статических сайтов

Серверный рендеринг;

  • TTFB (время первого байта) медленнее; Ваш сервер должен провести некоторое время, чтобы подготовить HTML для вашей страницы вместо того, чтобы отправить почти пустой HTML Doc со ссылкой на JavaScript
  • Сервер будет шире, может выполнить меньше запроса в секунду
  • HTML DOC будет больше
  • Страница выглядит раньше, но она не интерактивна и начало, пользователь должен ждать до тех пор, пока реакцию не будет сделано исполнение
  • Полная страница перезагрузить после маршрутов изменять

Пример страницы

Сделать сравнение этих двух методов, давайте будем использовать очень простой веб-сайт с одним изображением.

Клиентский рендеринг – код примера

BELED Вы можете проверить пример HTML, обслуживаемый пользователю в приложении Ract Application (React-App). Как вы видите, пока нет изображения, только просто HTML с подключенными файлами JS.





    
    
    React App
    


    
    

Серверный рендеринг – код примера

BELED Вы можете проверить наш пример на веб-сайт Next.js. Как видите, главное отличие в том, что у нас уже есть HTML с изображением, готовым к отображению.





    
    
    Home
    
    
    
    
    
    
    


    

Представление

Чтобы понять номенклатуру всех графиков ниже, я буду использовать это изображение как объяснение, благодаря Google: https://developers.google.com/web/fundamentals/performance/user-centric-permance-metrics#User-centric_performance_metrics

CSR Performance

  • Симулированный медленный 4G, 4x CPU замедление
  • Нет дросселя

SSR Performance

  • Симулированный медленный 4G, 4x CPU замедление
  • Нет дросселя

Выводы

  • Оба приложения становятся видимым и взаимодействием через 1-1,5 секунды, в этом простом примере SSR SSR немного быстрее
  • В пользователе Server-Rindering пользователь получит HTML намного быстрее, чем на лицевой стороне клиента
  • В клиент-боковом рендеринге не содержится, пока браузер не будет загружать все файлы JS
  • Содержание DOM загружено намного быстрее в SSR, чем в CSR; В клиентском боковом рендеринге вы должны ждать, чтобы скачать JS
  • Первая кончанная краска также быстрее на SSR
  • Пустая страница намного дольше на гораздо дольше на стороне на стороне клиента, как разработчик, который вы должны избегать его использования некоторого погрузчика или Загрузка экрана
  • Изображение быстрее доступно с SSR по сравнению с CSR, потому что при использовании CSR изображения не могут быть загружены перед подключенными файлами JS, HTML не готов,

Что я должен использовать?

  • Если вы хотите создать сайт, который в основном статичен (блог, портфолио, страница посадки), использование GATSBY , это не SSR, но он предварительно отображает сайт в HTML в течение времени сборки

  • Если вы хотите создать веб-приложение с реагированием, и вы заботитесь о SEO, более простым оптимизации социальных сетей и быстрее рендеринга для пользователя, вы должны подумать о SSR и Framework, как next.js

  • Если вы строите спа (приложение для одной страницы), и вы не хотите настроить все на стороне сервера, как: I18N, маршрутизатор E.T.C. Вы должны использовать Create-raction-app

Первоначально опубликовано Jakub Klimek в блоге AltaLogy

Оригинал: “https://dev.to/dcedrych/client-side-rendering-versus-server-side-rendering-13e”