Основанный на дереве (по сравнениюОснованный на HTML) Веб-фреймворк?
-
08-06-2019 - |
Вопрос
Любой, кто пишет клиентский JavaScript, знаком с DOM - древовидной структурой, на которую ссылается ваш браузер в памяти, сгенерированной из HTML, полученного им с сервера.JavaScript может добавлять, удалять и изменять узлы в дереве DOM для внесения изменений на страницу.Я нахожу, что с ним очень приятно работать (если не считать ошибок браузера), и он сильно отличается от способа, которым мой серверный код должен генерировать страницу в первую очередь.
Мой вопрос заключается в следующем:какие серверные фреймворки / языки создают страницу, рассматривая ее как DOM-дерево с самого начала - вставляя узлы вместо повторяющихся строк?Я думаю, было бы очень полезно, если бы клиентский и серверный код видели страницу одинаково.Вы, конечно, могли бы взломать что-то подобное вместе на любом языке веб-сервера, но фреймворк, предназначенный для создания страницы таким способом, мог бы внести некоторые очень приятные оптимизации.
Открытый исходный код, широкое распространение и то, что он существует уже некоторое время, - все это было бы плюсами.
Решение
Ты описываешь Носорог на рельсах, который еще не вышел, но скоро выйдет.Аналогично, Аптана Джаксер, однако RnR будет включать в себя фактический фреймворк (Rails), тогда как Jaxer - это всего лишь серверная технология.
Другие советы
Возможно, вам стоит обратить внимание на AJAX-сервер Aptana Jaxer, поскольку он также использует JS на стороне сервера.
При этом я бы сказал, что вам лучше не генерировать свою разметку с помощью операторов печати или эхо-сигналов, а использовать шаблон и привязку к вашему динамическому контенту.
Jaxer - это серверный javascript + DOM.Вы можете интегрировать jaxer с другими языками путем последующей обработки их выходных данных.
Также в java, php, ...вы можете использовать xpath для управления DOM.
Я понимаю, к чему ты клонишь, но все это немного спорно, не так ли?Вы не можете отправлять в браузер ничего, кроме отрисованного контента, и вам нужно сделать все это за один раз (исключая AJAX).В том, что вы предлагаете, нет никакой ценности (из того, что я вижу), поскольку даже если вы создадите это в виде дерева, вы все равно создадите только страницу, которая будет отправлена клиенту оптом.