Более общий вопрос здесь.
В настоящее время многие проекты, над которыми я работаю, используют серверные представления для визуализации пользовательского интерфейса и добавляют его JavaScript-то здесь и там. Это хорошо для небольших проектов, но в последнее время кажется, что файлы .js становятся довольно большими по размеру, и стеки на вызовы jQuery стеков .live и .bind, похоже, уже не сокращают его.
Каковы хорошие способы смешать JavaScript с представлением и, возможно, контроллером веб-приложения? Для веб-сайтов на основе Java я нашел DWR весьма полезным, но во многих случаях инициируемые пользователем события требуют логики контроллера, которая начинает становиться подавляющей и сбивающей с толку, когда она является частью многих одиноких функций, включенных в страницы.
Я рассматривал полностью шаблонный движок, управляемый AJAX, но это, кажется, немного экстремально и, вероятно, будет проблемой для любого, кто будет использовать. С другой стороны, клонирование функциональности существующих внутренних классов выглядит излишним.
Каков хороший подход "среднего уровня", используемый веб-приложениями, которые не полностью свободны от AJAX и не полностью ориентированы на JavaScript?
EDIT:
Возможно, я приведу повседневный пример проблемы. Скажем, я хотел бы предоставить пользователю модальный диалог, подтверждающий или опровергающий что-то:
"Your picture is uploaded but looks terrible. You need a new 'do." (OK | What?)
Теперь в одном сценарии это диалоговое окно может появиться в результате загрузки изображения с обновлением страницы, и в этом случае представление на стороне сервера будет отображать его. В другом сценарии оно может появиться после загрузки изображения через AJAX, и в этом случае оно, вероятно, будет вызвано JavaScript на странице. В обоих случаях нам нужен доступ к коду создания диалога, и я пока не могу придумать, как, скажем, класс Dialog
, который бы работал одинаково в обоих случаях.