Любой, кто пишет клиентский JavaScript, знаком с DOM - древовидной структурой, на которую ваш браузер ссылается в памяти, созданной из HTML, полученного с сервера. JavaScript может добавлять, удалять и изменять узлы в дереве DOM, чтобы вносить изменения на страницу. Мне очень приятно работать с ним (не говоря уже об ошибках браузера), и это сильно отличается от того, как мой серверный код должен изначально генерировать страницу.
Мой вопрос: какие серверные фреймворки / языки создают страницу, рассматривая ее как дерево DOM с самого начала - вставляя узлы вместо повторения строк? Я думаю, было бы очень полезно, если бы код на стороне клиента и на стороне сервера видел страницу одинаково. Вы, конечно, можете взломать что-то подобное вместе на любом языке веб-сервера, но фреймворк, предназначенный для создания страницы таким образом, может сделать некоторые очень хорошие оптимизации.
Открытый исходный код, широко распространенный и существующий некоторое время - все это будет плюсом.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я вижу, где вы и откуда, но это все немного спорный вопрос не так. Вы не можете отправлять в браузер ничего, кроме визуализированного контента, и вы должны делать все это за один раз (кроме AJAX). Нет никакой ценности в том, что вы предлагаете (из того, что я вижу), поскольку даже если вы построите его в виде дерева, вы все равно создаете страницу, которая отправляется оптом клиенту.
Вы описываете Носорог на рельсах, которого еще нет, но скоро будет. Точно так же Аптана Джаксер, однако RnR будет включать реальную структуру (Rails), тогда как Jaxer - это просто серверная технология.
Вам может пригодиться сервер Aptana Jaxer AJAX, поскольку он также использует серверную часть JS.
При этом я бы сказал, что вам лучше не генерировать разметку с помощью операторов печати или эхо, а скорее использовать шаблон и подключать ваш динамический контент.
Jaxer - это серверный javascript + DOM. Вы можете интегрировать jaxer с другими языками, постобработав их вывод.
Также в java, php, ... вы можете использовать xpath для управления DOM.
Преимущество состоит в том, что вы можете взаимодействовать с данными как с данными, а не как с строковым представлением этих данных.