Я занимаюсь разработкой веб-приложения, и в настоящее время я написал весь веб-сайт в формате html / js / css, а на серверной части у меня есть сервлеты, на которых размещены некоторые службы RESTFUL. Вся логика представления выполняется путем получения объектов json и изменения представления с помощью javascript.
Приложение по сути является поисковой системой, но оно будет иметь учетные записи пользователей с разными ролями.
Я исследовал некоторые фреймворки, такие как Play и Spring. Я довольно новичок в веб-разработке, поэтому мне было интересно, какие преимущества дает рендеринг страницы на стороне сервера?
Это: скорость? Более простая разработка и рабочий процесс? Доступ к существующим библиотекам? Больше? Все вышеперечисленное?
javascript
web-applications
frameworks
user1303881
источник
источник
Ответы:
HTML-рендеринг на стороне сервера:
* Когда требования пользовательского интерфейса хорошо вписываются в рамки.
HTML-рендеринг на стороне клиента:
** Когда пользовательский интерфейс в значительной степени пользовательский, с более интересными взаимодействиями. Кроме того, я нахожу кодирование в браузере с интерпретированным кодом заметно более быстрым, чем ожидание компиляции и перезапуска сервера.
Вы могли бы также рассмотреть гибридную модель с легкой реализацией серверной части, использующей систему шаблонов внешнего / внутреннего интерфейса, такую как усы .
источник
Генерация HTML на стороне сервера:
Генерация HTML на стороне клиента:
Обратите внимание, что генерация на стороне клиента - это то же самое, что и в случае успешных мобильных сайтов, поскольку, очевидно, это более эффективно с современными браузерами (браузеры на основе WebKit занимают около 70-80% рынка мобильных устройств).
В LinkedIn есть статья о преимуществах подхода на стороне клиента, использующего dust.js в качестве примера: «Оставить JSP в пыли: переместить LinkedIn в шаблоны клиентской стороны dust.js»
источник
Это зависит от ваших требований. Если вам нужно высокопроизводительное решение с малой задержкой, которое зависит от множества небольших задач, вы можете использовать структуру, аналогичную описанной. Однако наиболее распространенные решения в Java, PHP и C # не соответствуют этому.
Большинство веб-приложений очень сильно зависят от баз данных - большинство из них настолько сильно, что страницы не могут отображаться без хотя бы одного вызова. Очевидно, что вы не хотите раскрывать свою базу данных публично по нескольким причинам:
Поэтому, когда вам нужна база данных, вы используете языки, которые хорошо с ними работают, такие как Java, C #, PHP и т. Д. Самый простой способ создания страницы заключается в следующем: вы используете язык шаблонов (наиболее известный PHP, но JSP и ASP - два других очень распространенных языка) для создания страницы. Язык предоставляет конструкции, которые вызывают другие модули. В PHP это обычно на странице или в другом PHP-файле, используя шаблон MVC. В JSP вы используете скриптлеты или язык выражений JSP. Эти другие модули могут выполнять тяжелую работу по подключению к БД, выполнению логики и возвращению значений на уровень представления. Конечным результатом является сгенерированная HTML-страница, отображаемая на сервере и отправляемая клиенту.
Когда ваша база данных находится в той же сети, что и средство визуализации страниц, вы также получаете лучшую производительность. Клиенту нужно выполнить только один запрос и получить страницу - вам может потребоваться выполнить 10-15 запросов к БД, прежде чем вы получите всю информацию, необходимую пользователю. Задержка в миллисекундах в вашей сети будет от нескольких секунд до нескольких минут, если клиенту придется все это делать.
Когда системы разрастаются, решающее значение приобретает разделение интересов и основных компетенций. HTML хорош для отображения. Javascript хорош для динамического контента. SQL отлично подходит для запросов к базе данных, а другие языки хороши для бизнес-логики. Наша работа как разработчиков заключается в том, чтобы использовать все доступные нам инструменты для создания обслуживаемой системы. Легкость разработки - огромная часть хорошей системы. На мой взгляд, это почти так же важно, как производительность и удобство использования. Великие системы развиваются с течением времени. Плохие системы были написаны плохо с самого начала и никогда не были улучшены.
источник
you can't write SQL in Javascript
В самом деле?! Вы когда-нибудь рассматривали вопросы StackOverflow для Javascript? Я бы просил отличиться, к сожалению. Конечно, это самое худшее, что вы могли бы сделать в клиентском коде, но ...Мобильные клиенты обычно ограничены по мощности, пропускной способности и памяти. Вероятно, лучше сделать страницы для них на сервере.
Для настольных клиентов вы можете отправить js + json, чтобы отобразить страницу на клиенте, сделать ее динамически обновляемой и т. Д.
источник
Одним из огромных преимуществ рендеринга на стороне сервера является доступность - приложения на основе javascript все еще остаются большой проблемой для людей, не имеющих представления. Это и есть этот слепой парень по имени "googlebot", которого вы можете удовлетворить. Он не так хорошо делает JavaScript.
источник