Введение
В настоящее время я пишу очень стандартное приложение на основе Django (в основном это причудливый CRM/список контактов). Это похоже на работу, но по мере того, как я пытаюсь улучшить интерфейс с помощью большего количества кода AJAXy UI (используя jQuery), он начинает испытывать настоящую боль, чтобы работать. Я получаю длинные блоки хрупких обработчиков событий jQuery, которые анализируют DOM, нажимают изменения обратно на сервер, возвращают некоторые JSON и пытаются и обновляют DOM на основе этого.
Я чувствую, что, как минимум, я, вероятно, хочу добавить некоторые шаблоны на стороне клиента в микс. В качестве альтернативы, я мог бы попробовать переключиться на JS-инфраструктуру и просто использовать приложение Django в качестве уровня абстракции базы данных. Даже если я знаю и люблю Python, я мог бы отказаться от приложения Django и попробовать и пойти с решением JS/ Node.js или что-то в этом роде.
Кто-нибудь еще был в этой ситуации? Как вы его решили?
Цели проектирования
- DRY: Я не хочу реплицировать свои модели или мои шаблоны (или, по крайней мере, больше, чем необходимо).
- Я хочу, чтобы посетители приземлялись на странице, чтобы получить результаты на сервере rendereed.
- По мере того, как посетители нажимают на вещи, я бы хотел обработать это с помощью клиентских шаблонов и рендеринга и обновить сервер через вызовы AJAX на интерфейс REST.
Итак... как мне это сделать? Я собрал ссылки на несколько фреймворков и систем шаблонов. В определенном порядке:
dust.js:
Это, по-видимому, используется LinkedIn для решения подобной проблемы. Он использует Node.js на стороне сервера, что не идеально (я никогда не использовал Node), но, по крайней мере, это не основанный на JVM. Он также кажется спящим на github - я нашел списки рассылки, где люди задавались вопросом, куда идет сопровождающий. Это звучит неплохо - сообщение в блоге от LinkedIn неплохо продает технологию, особенно способность ее скомпилировать. Но, похоже, это просто шаблон. Этого достаточно для того, чего я хочу?
Mustache:
Эта опция имеет как реализацию Python, так и JS, и кажется популярной... но я не могу найти тех, кто, кажется, использует шаблоны Mustache с Django. Разве это потому, что слишком легко заслужить сообщение в блоге, или это невозможно или иначе нецелесообразно? Он также довольно ограничен; по крайней мере, мне, вероятно, придется обратиться к какой-то структуре MVC JS, верно?
Магистраль, позвоночник, нокаутJS, EmberJS, JavascriptMVC и т.д.:
Там так много фреймворков, это довольно сложно. Все они кажутся совершенно хорошими на первый взгляд. Мне также кажется, что мне нужно будет переписать много моего приложения, если я поеду по этому маршруту, и я действительно хотел бы найти того, кто уже сделал что-то подобное. Кроме того, было бы неплохо, если бы был хороший выбор для кого-то из Django в качестве фона; Я не хочу изучать полдюжины различных фреймворков, чтобы их оценить.
DerbyJS
Это выглядит интересно, поскольку он обрабатывает как клиентские, так и серверные стороны в одном пакете, но немного незрелый. Они предупреждают против использования его в производстве, и, если я понимаю документы, он еще не поддерживает какую-либо настойчивость, которая... ограничивает. У меня такое чувство, что если бы это было закончено, это было бы прекрасно для того, что я хочу, хотя...
Так....
Итак, э-э... теперь что? Кто-нибудь использовал любой из этих инструментов, чтобы попытаться добавить визуализацию на стороне клиента в Django webapp? Как все прошло?