0

В большинстве традиционных фреймворков MVC есть свое собственное решение для шаблонов (Jinja2, Mako и т. Д.). Если вы решите использовать одну из этих новых каркасов ui, таких как угловые или опорные, они, похоже, поощряют использование решений для шаблонов передней панели.Когда использовать базовый шаблонный двигатель и когда использовать фронтальный шаблонный двигатель?

Есть ли разница в производительности? Каковы плюсы и минусы в любом случае? Существуют ли проблемы в ie или других браузерах при использовании некоторых тезисов js templating solutions?

+0

Очевидное преимущество: с помощью шаблона внешнего интерфейса ваш сервер фактически не возвращает документ, полный данных. Это будет иметь влияние на SEO или Javascript-неспособных клиентов. Может быть, тебе все равно, может быть, и так. – deceze

+0

Компромиссы: время компиляции по сравнению с сетевым временем – nullpotent

ответ

1

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

Например, мой новый проект включает в себя возможность иметь цветовые коды в чате (и других местах). Эти коды выглядеть так:

`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 ...

+0

Игнорирование кеширования, добавление библиотеки шаблонов на вашу страницу может означать, что клиенту нужно будет загрузить этот файл js, который, вероятно, будет иметь больше кода, чем шаблон с расширенной серверной версией. – TheOne

+0

@Ramin Вы не можете просто сказать «игнорируя самый большой вклад в то, почему это хорошая идея, это действительно плохая идея»: p –

+0

Ну, в первый раз посещение кеширования не применяется. – TheOne

3

Я считаю, что это просто.

Используйте серверный шаблон для шаблонов, если вы хотите создать шаблон структуры сайта. Используйте клиентский шаблон для шаблонов, если вы хотите создать шаблон данных сайта. И нет ничего плохого в использовании обоих, если у них нет большого количества конкурирующих токенов.

ОЧЕНЬ распространенным примером этого является использование ASP.Net MVC для управления основной частью структуры сайта с использованием механизма шаблона бритвы и использование клиентской библиотеки JavaScript, такой как Angular.js, для упрощения структуры данных на отдельных страницах ,

+0

Это то, о чем я думал, но разве это не будет пустой тратой для клиента а не использовать его для всех - разгружая работу, которую должен выполнять сервер? – TheOne

+0

есть компромиссы в любой ситуации. Если на странице есть 3 элемента данных, сервер может обрабатывать их так же эффективно, как и клиент. Если на странице есть 3000 элементов данных, вы не хотите загружать этот каждый переход на страницу. – Claies

+0

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

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