2017-02-17 6 views
2

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

  • Создайте весь HTML заранее (через серверные скрипты) и скройте все «виды», за исключением одной (целевой страницы). Когда пользователь нажимает на элемент меню, скрывает видимое в данный момент представление и не скрывает вид, соответствующий их выбору.
  • Включите все данные как переменные/объекты JavaScript. Когда пользователь выбирает что-то из меню, используйте шаблонный движок, например Handlebars.js, для создания требуемого HTML.

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

ответ

1

Я бы послал данные и шаблоны клиенту и визуализировал HTML на клиенте по простой причине - он, вероятно, работал бы намного быстрее (это, конечно, зависит от ваших фактических данных).

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

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

Еще один момент - должно быть легко сделать приложение полностью без сервера, если все визуализируется на клиенте. Вы можете отправить json-файл с данными вместе с кодом приложения и активами, и в этом случае он может работать без сервера вообще (конечно, это только точка, если этот случай использования имеет значение в вашей ситуации).

+0

Спасибо за ваш ответ! Если мы берем время передачи от сервера к клиенту из уравнения и учитываем только время загрузки страницы, когда HTML работает в автономном режиме, будут ли шаблоны/необработанные данные быстрее, чем предварительный рендеринг HTML? – atm

+1

Трудно предсказать, что будет быстрее, вы можете получить данные клиенту, а затем отобразить все сразу, таким образом, после этого не будет никакой разницы. Общее время будет зависеть от того, быстрее ли выполняется на стороне сервера или на стороне клиента. Но также, если у вас будет много пользователей, вы снимете нагрузку с вашего сервера путем рендеринга на клиенте. –

Смежные вопросы