Как сегодня модно хранить HTML в Яваскрипте? MVC уже изобрели?

Всем привет!

Давно не писал на Яваскрипте ничего серьезного.
Вижу, очень хорошо развиваются фреймворки.

Скажите, как решается проблема HTML-кода? Когда, например, у вас динамически формируется на основе JSON'а, пришедшего со стороны сервера, сложный HTML-код? Понятно, что можно вернуть HTML-код со стороны сервера, а можно и руками DOM собрать. Но в первом случае вы завязаны на формат данных, во втором иногда очень уж сложные получаются конструкции, и менять многочисленные addChild в случае серьезных изменений в коде трудно. Для этого есть шаблоны на серверной стороне. А вот на клиентсткой что сейчас самое тру?
  • Вопрос задан
  • 3021 просмотр
Пригласить эксперта
Ответы на вопрос 8
closure templates очень советую. Работают в нескольких боевых проектах. Хостятся на code.google.com точную ссылку могу дать когда за компьютером буду :-)
Ответ написан
Комментировать
nikitammf
@nikitammf
@1nd1go
я тоже часто сталкиваюсь с этим вопросом.
для себя избрал три подхода:

1. если требуется сгенерировать мало кода, что-то впроде одного текстового поля с лэйблом, использую для этого jquery: $(''...).after(...). Удобно тем, что можно скэшировать ссылки на элементы, на которые потом навешиваются обработчкики событий и т.п.

2. структура может быть чуть посложнее, но не намного, то юзаю $.nano — удобный плагин и очень маленький. мне нравится даже то как он написан. Правда есть ограничения — у него плохо с массивами значений, но

3. Если большие данные для рендеринга ходят между клиентом и сервером, то я здесь уже весь HTML генерирую на сервере, а потом его вставляю. Дело в том, что я считаю, что сайт попрежнему должен иметь возможность работать без JS (это отдельный вопрос — почему). Поэтому если JS по каким-то причинам не отрабатывает, приходит нормальная страница. Сервер сам решает в зависимости от того ajax или неajax запрос пришел и отдает либо полную страницу либо кусок. Кстати, помогает в этом jquery ajaxify плагин
Ответ написан
plagi
@plagi
Не рекомендую использовать xml+xslt, все браузеры по разному его воспринимают.
Проверено на собственной шкуре. Очень тяжело отлаживать ошибки.
Ответ написан
burya
@burya
Только что закончил большой проект, в котором для таких целей использовал EJS (опенсорсная javascript template библиотека). Можно делать шаблоны с довольно навороченной логикой.
Ответ написан
Комментировать
@Treg
Мой Вам совет — не мудрите с шаблонизаторами для JS. Если надо по шаблону размножить кусок кода, например, для таблицы с данными — сделайте его скрытым с классом template. Теги, в которые надо подставлять значения, тоже снабдите соответствующими классами, например: cell-name, cell-price и т.п. и подставляйте в них значения. Этим вы убиваете нескольких зайцев (подстановка значений, определение обработчиков, удобная отладка и т.п.), используя простые инструменты.
Ответ написан
@ilimer
В одном проекте использую api.jquery.com/tmpl/ (официальный плагин для jQuery), удобный и функциональный плагин.

В другом проекте использую самописный прекомпил(используя xsl) серверных шаблонов в javascript — очень удобно одни и те же шаблоны могут легко использоваться как на серверной стороне, так и на клиентской
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы