В зависимости от ситуации одним из основных факторов может быть значительное изменение в использовании полосы пропускания.
Например, мой новый проект включает в себя возможность иметь цветовые коды в чате (и других местах). Эти коды выглядеть так:
`1blue `2green `3yellow `4red `bbold on `Bbold off `b`iBold Italic...
Я мог разобрать этот на стороне сервера и возврата:
<span style="color:blue">blue </span><span style="color:green">green</span>...
Но видеть, как я только сделал два слова, и я уже собираюсь больше, чем исходный текст ! Вместо этого я решил реализовать парсер в JavaScript, на интерфейсе. Это требует большой обработки сервера (который в противном случае должен был бы разобрать этот материал для каждого отдельного пользователя) клиенту (где обрабатывается только один пользователь).
Это также имело то преимущество, что я мог реализовать предварительный просмотр в прямом эфире, подключившись к тому же самому парсеру, но здесь это не имеет значения.
Кроме того, клиентские шаблоны могут быть кэшированы, что дополнительно уменьшает объем данных, которые необходимо отправить. Это может быть особенно полезно для мобильных пользователей, у которых могут быть неограниченные данные (эти бедные люди ... я плачу за них ... не очень)
Лично, учитывая выбор, я настоятельно рекомендую клиентскую сторону tempating (хотя в моем обычном стиле я бы избегал всех готовых решений и сделал свой собственный XD, мне это странно) по целому ряду причин. Очевидно, что основным недостатком является «нет JavaScript = нет веб-сайта», но я в порядке с этим, поскольку весь сайт зависит от JS ...
Очевидное преимущество: с помощью шаблона внешнего интерфейса ваш сервер фактически не возвращает документ, полный данных. Это будет иметь влияние на SEO или Javascript-неспособных клиентов. Может быть, тебе все равно, может быть, и так. – deceze
Компромиссы: время компиляции по сравнению с сетевым временем – nullpotent