Какой хороший язык шаблонов поддерживается в JavaScript? - PullRequest
18 голосов
/ 24 сентября 2008

Шаблоны - это довольно здоровый бизнес на устоявшихся языках программирования, но есть ли хорошие, которые можно обрабатывать в JavaScript?

Под «шаблоном» я подразумеваю документ, который принимает объект данных в качестве входных данных, вставляет данные в некий сериализованный язык разметки и выводит разметку. Хорошо известными примерами являются JSP , оригинальный PHP, XSLT .

Под «хорошим» я подразумеваю, что автору HTML легко и просто написать декларацию, что он надежен и поддерживается и на других языках. Что-то лучше, чем варианты, о которых я знаю. Некоторые примеры «не хорошо»:


Строковая математика:

element.innerHTML = "<p>Name: " + data.name
    + "</p><p>Email: " + data.email + "</p>";

явно слишком громоздкий, структура HTML не очевидна.


XSLT:

<p><xsl:text>Name: </xsl:text><xsl:value-of select="//data/name"></p>
<p><xsl:text>Email: </xsl:text><xsl:value-of select="//data/email"></p>

// Структурно это работает хорошо, но давайте посмотрим правде в глаза, XSLT сбивает с толку разработчиков HTML.


Trimpath:

<p>Name: ${data.name}</p><p>Email: ${data.email}</p>

// Это хорошо, но процессор поддерживается только в JavaScript, а язык довольно примитивен (http://code.google.com/p/trimpath/wiki/JavaScriptTemplateSyntax).


Я бы хотел видеть подмножество JSP, ASP или PHP, портированных в браузер, но я этого не нашел.

Что люди используют в эти дни в JavaScript для шаблонов?

Добавление

Через несколько месяцев здесь появилось много работоспособных языков шаблонов, но большинство из них нельзя использовать ни на каком другом языке. Большинство этих шаблонов нельзя использовать вне движка JavaScript.

Исключением является Microsoft - вы можете обрабатывать один и тот же ASP либо в браузере, либо в любом другом движке ASP. У этого есть свой собственный набор проблем переносимости, так как вы связаны с системами Microsoft. Я отметил это как ответ, но все еще заинтересован в более портативных решениях.

Спасибо за все входные данные!

Ответы [ 16 ]

12 голосов
/ 24 сентября 2008

Джон Резиг имеет мини-шаблонизатор JavaScript на http://ejohn.org/blog/javascript-micro-templating/

10 голосов
/ 22 апреля 2010

Вы можете попробовать Усы - это действительно переносимый и простой язык шаблонов с поддержкой javascript среди других языков.

6 голосов
/ 21 октября 2008

Я сталкивался с этим сегодня, хотя я еще не пробовал ...

http://beebole.com/pure/

5 голосов
/ 03 июля 2010

Шаблоны закрытия - это довольно надежная система шаблонов от Google, которая работает как для Javascript, так и для Java. У меня был хороший опыт их использования.

2 голосов
/ 26 января 2011

Я использую Google Closure шаблоны. http://code.google.com/closure/templates/docs/helloworld_js.html

Простые шаблоны, BiDi поддержка, авто-экранирование, оптимизировано для скорости. Кроме того, синтаксический анализ шаблона происходит как этап сборки, поэтому он не замедляет работу клиента. Еще одним преимуществом является то, что вы можете использовать те же шаблоны из Java, если вам нужно сгенерировать HTML на сервере для пользователей с отключенным JavaScript.

2 голосов
/ 26 сентября 2008

ExtJS имеет исключительный шаблонный класс, называемый Ext.XTemplate: http://extjs.com/deploy/dev/docs/?class=Ext.XTemplate

1 голос
/ 06 июля 2010

Вот один из примеров, реализованный в jQuery для языка шаблонов Smarty. http://www.balupton.com/sandbox/jquery-smarty/demo/

Одной из впечатляющих функций является поддержка динамических обновлений. Поэтому, если вы обновите переменную шаблона, она будет обновлена ​​в любом месте шаблона, где используется эта переменная. Довольно изящный.

Вы также можете подключиться к изменениям переменных, используя событие onchange. Так что это полезно, скажем, для выполнения эффектов или AJAX, когда, скажем, переменная "page" изменяется; -)

1 голос
/ 03 октября 2008
1 голос
/ 25 сентября 2008

В состав ASP.NET AJAX 4.0 входит функциональность шаблона на стороне клиента.

http://encosia.com/2008/07/23/sneak-peak-aspnet-ajax-4-client-side-templating/

Кроме того, вы можете использовать библиотеку Microsoft AJAX (которая является частью JavaScript ASP.NET AJAX) самостоятельно, без использования ASP.NET.

http://www.asp.net/ajax/downloads/

1 голос
/ 24 сентября 2008

Я написал http://google -caja.googlecode.com / svn / changes / mikesamuel / string-interpolation-29-Jan-2008 / trunk / src / js / com / google / caja / interp / index. html , который описывает систему шаблонов, которая добавляет интерполяцию строк в javascript таким образом, чтобы предотвращать атаки XSS, выбирая правильную схему выхода на основе предыдущего контекста.

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