2

Мне интересно, стоит ли конвертировать в более общий шаблонный движок, такой как усы или рули вместо шаблонов Django. Варианты, которые я вижу для себя, являются:Сторона клиента на стороне сервера против гибридного шаблона для бэкэнда django

  1. Оставайтесь с Django шаблоны (только на стороне сервера)
  2. Преобразование полностью Усы/рули или такой
  3. Использование гибридного approcah: Усы/Рули, а также некоторые использования шаблонов Django, где это применимо (уродливый вариант?)

Хотя преобразование в Усы/рули как система покупает мне гибкость, используя те же шаблоны на стороне клиента, а также стороне сервера, я потерять определенные преимущества, предоставляемые Джанго система шаблонов (например, Наследование шаблонов).

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

Мне также известны аргументы в пользу использования html-рендеринга на стороне сервера для устройств, не поддерживающих javascript, но большинство устройств в наши дни поддерживают javascript.

Есть ли реальные и понятные причины для преобразования в Усы/Ручки и т. Д. Из системы шаблонов Django?

Спасибо.

ответ

3

У вашего вопроса нет конкретного ответа. На мой взгляд, проблемы с шаблонами на стороне клиента в стиле Mustache намного превосходят тех, кто предпочитает шаблоны на стороне сервера. Шаблоны на стороне клиента в стиле усы портативны, масштабируемы, понятны другим разработчикам и работают во всех браузерах (даже IE6). Если вы планируете увеличить свое веб-приложение, вы будете благодарить себя за линию, когда генерация страницы выгружается в браузер пользователей и не обрабатывается на стороне сервера.

Наследование шаблонов, предложенное Django, завышено - вы можете сделать то же самое с шаблонами Mustache и немного JavaScript. Не пытайтесь создавать большие все охватывающие шаблоны. Создайте свои шаблоны в виде небольших повторно используемых стандартных блоков и объедините их вместе с JavaScript, чтобы сформировать компоненты, которые составляют ваше веб-приложение.

Конечно, SEO ударяет, когда вы визуализируете все на клиенте, но это может быть или не быть проблемой для вашего приложения.

+0

Спасибо. Подумав еще, мне показалось, что имеет смысл использовать серверные шаблоны для статического контента, а клиентские шаблоны для динамических - например, обновления на странице. Для статической страницы в моем случае есть очень ограниченное количество HTML, которое будет отправлено с сервера, но для динамического содержимого может быть много экземпляров виджета (например, коллекция комментариев к блогу), и в этом случае только отправка JSON от сервера, а не от HTML, безусловно, будут иметь преимущества пропускной способности/эффективности. Мысли? – Sid

+0

Вот статья, которую я нашел очень полезной: http://ryanflorence.com/2012/client-v-server-templating/ –