Я работаю над проектом AJAXy (Dojo и Rails, если подробности имеют значение). Есть несколько мест, где пользователь должен иметь возможность сортировать, группировать и фильтровать результаты. Также есть места, где пользователь заполняет короткую форму, и полученный элемент добавляется в список на той же странице.
Реализация без AJAXy работает нормально - серверная часть уровня представления уже знает, как визуализировать этот материал, поэтому она может просто сделать это снова в другом порядке или с дополнительным элементом. Это, однако, увеличивает нагрузку на сервер.
Итак, мы переключились на отправку JSON с сервера и много (ре) рендеринга на стороне клиента. Недостатком является то, что теперь у нас есть дублирующий код для рендеринга каждой страницы: один раз в Rails, который был создан для этого, и один раз в Dojo, который не был. Последнее в основном просто конкатенация строк.
Итак, первый вопрос: есть ли хорошая Javascript MVC-инфраструктура, которую мы могли бы использовать, чтобы сделать рендеринг на стороне клиента более удобным для сопровождения?
И второй вопрос: есть ли способ генерировать представления на стороне клиента в Javascript и представления на стороне сервера в ERB из одного и того же шаблона? Я думаю, что именно так поступили бы прагматичные программисты.
В качестве альтернативы, вопрос третий: я полностью пропускаю другой угол? Может быть, отправить JSON с сервера, но также включить фрагмент HTML в качестве атрибута, чтобы Javascript мог выполнять фильтрацию, сортировку и т. Д., А затем просто вставить данный фрагмент?