Платформы шаблонов на стороне клиента для оптимизации с использованием jQuery с REST / JSON - PullRequest
9 голосов
/ 07 февраля 2010

Я начинаю переносить некоторые задачи генерации html с серверной инфраструктуры на клиент. Я использую JQuery на клиенте. Моя цель - получить данные JSON через API REST и использовать эти данные для заполнения HTML-страниц.

Прямо сейчас, когда пользователь на моем сайте нажимает ссылку на Мои проекты , сервер генерирует HTML следующим образом:

<dl>
    <dt>Clean Toilet</dt>
    <dd>Get off your butt and clean this filth!</dd>

    <dt>Clean Car</dt>
    <dd>I think there's something growing in there...</dd>

    <dt>Replace Puked on Baby Sheets</dt>
</dl>

Я изменяю это так, что нажатие Мои проекты теперь будет выполнять запрос GET, который возвращает что-то вроде этого:

[
  {
    "name":"Clean Car",
    "description":"I think there's something growing in there..."
  },
  {
    "name":"Clean Toilets",
    "description":"Get off your butt and clean this filth!"
  },
  {
    "name":"Replace Puked on Baby Sheets"
  }
]

Я, конечно, могу написать собственный код jQuery, чтобы взять этот JSON и сгенерировать из него HTML. Это не мой вопрос, и мне не нужен совет, как это сделать.

То, что я хотел бы сделать, это полностью отделить представление и макет от логики (код jquery). Я не хочу создавать элементы DL, DT и DD с помощью кода jQuery. Я бы предпочел использовать какие-то шаблоны HTML, в которые я могу заполнить данные. Эти шаблоны могут быть просто фрагментами HTML, которые скрыты на странице, с которой было загружено приложение. Или они могут быть динамически загружены с сервера (для поддержки пользовательских макетов, i18n и т. Д.). Они могут отображаться один раз, а также позволяют повторять и повторять. Возможно, он должен поддерживать под-шаблоны, если / то / еще, и т. Д.

У меня есть МНОГО списков и контента на моем сайте, которые представлены различными способами. Я пытаюсь создать простой и последовательный способ создания и отображения контента без создания собственного кода jQuery для каждой функции на моем сайте. Для меня это означает, что мне нужно найти или построить небольшой фреймворк поверх jQuery (возможно, как плагин), который отвечает этим требованиям.

Единственный тип фреймворка, который я нашел, это что-то вроде этого: jTemplates . Я не знаю, насколько это хорошо, так как я еще не использовал его. На первый взгляд, я не в восторге от синтаксиса шаблонов.

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

Спасибо!

Ответы [ 3 ]

6 голосов
/ 17 марта 2010

С момента публикации этого вопроса я нашел много других вариантов шаблонов. Я перечислил многие из них ниже. Однако недавно было предложено предложение шаблонов jQuery , которое, возможно, является самым многообещающим решением. На сайте jquery также обсуждается . Вот местоположение проекта:

Другие решения, с которыми я сталкивался, включают (без определенного порядка):

2 голосов
/ 07 февраля 2010

Звучит так, как ты хочешь sammy.js

http://code.quirkey.com/sammy/

В уроках есть демонстрационное использование шаблонного движка

1 голос
/ 07 февраля 2010

Я использовал jTemplates довольно много раз, и, по моему опыту, он служит своей цели.

Если мы ограничиваем обсуждение клиентской стороной, то это мой последний комментарий по этому вопросу, поскольку он выполняет свою работу и, несмотря на некоторый причудливый синтаксис, делает это хорошо, однако на стороне сервера я определенно предпочел бы сценарий, где вы помещаете JSON, который десериализуется в объект в памяти, а затем проверяется и передается в шаблон на стороне сервера (например, ASCX в ASP.NET), где у вас есть все возможности этого языка.

По моему мнению, если клиент поддерживает JavaScript достаточно хорошо для того, чтобы вы рассматривали jTemplates, я бы порекомендовал установить себе служебный метод JavaScript, который позволяет отправлять JSON и получать HTML, тем самым исключая потенциально проблемных посредников. Большинство языков имеют возможность JSON-разбора, и jQuery может автоматически анализировать ответ сервера в JSON, указав тип возвращаемого значения как «json».

Даже если вы не получаете JSON из JavaScript, вы все равно можете взять JSON, который вы бы отправили обратно в браузер, и просто отправить его через свой серверный шаблон. В ASP.NET (например, с MVC) вы можете иметь строго типизированные файлы шаблонов, которые не нужно компилировать, что значительно упрощает внесение изменений. Следовательно, вы все равно будете отправлять обратную разметку, но она будет проходить через надлежащий шаблон с полным набором языков программирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...