Автор оригинала: Cristian Vega.
Поскольку рассвете времени, обычный метод получения вашего HTML на экран был с помощью рендеринга на стороне сервера. Это был единственный способ. Вы загрузили свои страницы .html на своем сервере, затем ваш сервер пошел и превратил их в полезные документы на браузерах ваших пользователей.
Рендеринг на стороне сервера тоже отлично работал, поскольку большинство веб-страниц были в основном просто для отображения статических изображений и текста, с небольшим путем в пути интерактивности.
Быстро вперед до сегодняшнего дня И это больше не так. Вы можете утверждать, что веб-сайты в наши дни больше похожи на приложения, притворяющиеся веб-сайтами. Вы можете использовать их для отправки сообщений, обновлять онлайн информацию, магазин и намного больше. Веб только намного более продвинутая, чем раньше.
Таким образом, именно имеет смысл, что рендеринг на стороне сервера постепенно начинает отступить к постоянно растущему методу рендеринга веб-страниц на стороне клиента.
Так какой метод лучше вариант? Как с большинством вещей в разработке, это действительно зависит от того, что вы планируете делать с вашим сайтом. Вам нужно понимать плюсы и минусы, а затем решить для себя, какой маршрут лучше для вас.
Как работает серверный рендеринг
Серверный рендеринг является наиболее распространенным методом для отображения информации на экране. Он работает, преобразовав HTML-файлы на сервере в полезную информацию для браузера.
Всякий раз, когда вы посещаете веб-сайт, ваш браузер делает запрос на сервер, который содержит содержимое веб-сайта. Запрос обычно требуется всего несколько миллисекунд, но в конечном итоге зависит от множества факторов:
- Ваш интернет скорость
- Расположение сервера
- Сколько пользователей пытаются получить доступ к сайту
- и насколько оптимизирован сайт, чтобы назвать несколько
После того, как запрос выполняется обработка, ваш браузер вернет полностью отображенную HTML и отображает его на экране. Если вы тогда решите посетить другую страницу на веб-сайте, ваш браузер снова сделает еще один запрос на новую информацию. Это произойдет каждый раз, когда вы посещаете страницу, которую ваш браузер не имеет кэшированной версии.
Неважно, имеет ли новую страницу только несколько элементов, которые отличаются от текущей страницы, браузер попросит всю новую страницу и перенесет все с нуля.
Возьмите, например, этот HTML-документ, который был помещен в воображаемый сервер с HTTP-адресом example.testsite.com Отказ
Example Website
My Website
This is an example of my new website
Link
Если вы должны были ввести адрес примерного веб-сайта в URL-адрес вашего воображаемого браузера, ваш воображаемый браузер сделает запрос на сервер, который используется этим URL и ожидает ответа некоторых текста для рендера на браузеру. В этом случае то, что вы визуально увидите, будет название, содержимое абзаца и ссылка.
Теперь предположим, что вы хотите нажать на ссылку с визуализации, которая содержит следующий код.
Example Website
My Website
This is an example of my new website
This is some more content from the other.html
Единственная разница между предыдущей страницей и этим является то, что эта страница не имеет ссылки и вместо этого есть другой абзац. Логика будет диктовать, что следует отобразить только новый контент, а остальные должны остаться в одиночку. Увы, это не о том, как работает серверный рендеринг. Что бы произошло бы, что вся новая страница будет оказана, а не только новый контент.
Хотя это может показаться не более обзором для этих двух примеров, большинство веб-сайтов не так просто. Современные сайты имеют сотни линий кода и намного сложнее. Теперь представьте себе просмотр веб-страницы и необходимость дождаться каждой и каждой страницы, чтобы рендер при навигации на сайте. Если вы когда-либо посещали сайт WordPress, вы видели, как они могут быть медленными. Это одна из причин, почему.
На светлой стороне серверный рендеринг отлично подходит для SEO. Ваш контент присутствует до того, как вы получите его, поэтому поисковые системы могут индексировать его и ползать это просто хорошо. То, что не так с рендерингом на стороне клиента. По крайней мере, не просто.
Как работает на стороне клиента
Когда разработчики говорят о рендеринге на стороне клиента, они говорят о том, что рендеринг содержимого в браузере с помощью JavaScript. Таким образом, вместо того, чтобы получить все содержание от самого HTML-документа, вы получаете голые кости HTML-документа с файлом JavaScript, который сделает остальную часть сайта с помощью браузера.
Это относительно новый подход к рендерингам веб-сайтов, и он на самом деле не стал популярным до тех пор, пока JavaScript Niveries не начал не включать в себя в свой стиль развития. Некоторые заметные примеры являются vue.js и rest.js, которые я написано больше о здесь Отказ
Возвращаясь к предыдущему сайту, example.testsite.com Предположим, что у вас теперь есть файл index.html со следующими строками кода.
Example Website
Вы можете сразу увидеть, что существуют некоторые серьезные изменения в том, как INDEX.HTML работает при рендеринге с использованием клиента.
Для начала, вместо того, чтобы иметь содержимое внутри HTML-файла, у вас есть контейнер Div с идентификатором root. У вас также есть два элемента скрипта прямо над тегом закрытия тела. Тот, который загрузит библиотеку Vue.js javaScript и тот, который загрузит файл под названием App.js.
Это радикально отличается от использования сервера рендеринга, поскольку сервер теперь отвечает только за загрузочную минус веб-сайта. Главная котельная. Все остальное обрабатывается библиотекой JavaScript с клиентом, в этом случае, Vue.js и пользовательский код JavaScript.
Если вы должны были сделать запрос на URL только с кодом выше, вы получите пустой экран. Также нечего загружать, поскольку фактический контент должен быть отображен с помощью JavaScript.
Чтобы исправить это, вы поместите следующие строки кода в файл App.js.
var data = {
title:"My Website",
message:"This is an example of my new website"
}
Vue.component('app', {
template:
`
`,
data: function() {
return data;
},
methods:{
newContent: function(){
var node = document.createElement('p');
var textNode = document.createTextNode('This is some more content from the other.html');
node.appendChild(textNode);
document.getElementById('moreContent').appendChild(node);
}
}
})
new Vue({
el: '#root',
});Теперь, если вы посетите URL, вы увидите тот же контент, что сделал пример сервера. Ключевое отличие заключается в том, что если вы должны были нажать на ссылку на страницу, чтобы загрузить больше контента, браузер не сделает другой запрос на сервер. Вы делаете элементы с браузером, поэтому вместо этого он будет использовать JavaScript для загрузки нового контента, а Vue.js убедитесь, что отображается только новый контент. Все остальное будет оставлено в покое.
Это намного быстрее, так как вы загружаете только очень маленькую часть страницы, чтобы получить новый контент вместо загрузки всей страницы.
Есть несколько торговых сферов с использованием рендеринга на стороне клиента. Поскольку содержимое не отображается до тех пор, пока страница не загрузится на браузере, SEO для веб-сайта примет удар. Есть способы обойти это, но это не так просто, как с рендерингом сервера.
Другое, что следует помнить, что ваш сайт/приложение не сможет загрузить, пока все JavaScript загрузится в браузер. Что имеет смысл, поскольку он содержит все контент, который понадобится. Если ваши пользователи используют медленное подключение к Интернету, он может сделать свое начальное время загрузки немного долго.
Плюсы и минусы каждого подхода
Так что у вас есть. Это основные различия между сервером и рендерингом на стороне клиента. Только ты разработчик может решить, какой вариант лучше всего для вашего сайта или приложения.
Ниже приведена быстрая пробоя плюсов и минусов для каждого подхода:
Серверные сбыты:
- Поисковые системы могут загонять на сайте для лучшего SEO.
- Начальная страница нагрузки быстрее.
- Отлично подходит для статических сайтов.
Сервер-борту Минусы:
- Частые серверные запросы.
- Общий медленный рендеринг страницы.
- Полная страница перезагрузки.
- Необликовое взаимодействие на месте.
Плюсы на стороне клиента:
- Богатые взаимодействия сайта
- Быстрый рендеринг сайта после начальной нагрузки.
- Отлично подходит для веб-приложений.
- Надежный выбор библиотек JavaScript.
Клиентская сторона годов:
- Низкий SEO, если не реализован правильно.
- Начальная нагрузка может потребоваться больше времени.
- В большинстве случаев требуется внешняя библиотека.
Если вы хотите узнать больше о Vue.js, проверьте мой сайт на juanmvega.com Для видео и статей!
Оригинал: “https://www.freecodecamp.org/news/what-exactly-is-client-side-rendering-and-hows-it-different-from-server-side-rendering-bd5c786b340d/”