Нет правильного ответа; это зависит от ваших ожиданий.
Если вы хотите, чтобы приложение было доступно (т. Е. Обрабатывалось программой чтения с экрана), обрабатывалось роботами поисковой системы или вы хотите, чтобы пользовательский интерфейс кэшировался между запросами и пользователями, вам нужно будет использовать сгенерированный сервером HTML, а не динамический погрузка. Если вы используете кеш для сгенерированного HTML, вы получите большой пробег без постоянного повторного рендеринга. Существует больше инструментов на стороне сервера, чем на стороне клиента, но с ростом JS это становится все менее правдивым.
OTOH, создание JSON, которое визуализируется клиентом с использованием некоторой библиотеки JS, может реально помочь вашему серверу снизить нагрузку. Вы распределяете работу по рендерингу для клиента, но это действительно берет контроль над вашими руками. Если у вас есть тяжелое решение JS и клиент не может обрабатывать JS (программы чтения с экрана, роботы поисковых систем и т. Д.), То сайт должен изящно деградировать или ожидать, что какая-то аудитория не сможет его просмотреть. Эта аудитория может быть незначительной для вас, но это то, что нужно знать. Пока вы хорошо управляете рендерингом (задайте минимальный размер для областей, значки ожидания и т. Д.), Вы можете сделать рендеринг на стороне клиента таким же плавным, как на стороне сервера (при сравнении шагов визуального рендеринга). Создание JSOn также дает вам больше гибкости, так как определяется больше интерфейсов или становятся важными другие клиенты без пользовательского интерфейса.