Baseado em árvore (vs.Baseado em HTML) Web Framework?
-
08-06-2019 - |
Pergunta
Qualquer pessoa que escreva JavaScript do lado do cliente está familiarizada com o DOM – a estrutura em árvore que seu navegador faz referência na memória, gerada a partir do HTML obtido do servidor.JavaScript pode adicionar, remover e modificar nós na árvore DOM para fazer alterações na página.Acho muito bom trabalhar com isso (exceto os bugs do navegador) e muito diferente da maneira como meu código do lado do servidor gera a página em primeiro lugar.
Minha pergunta é:quais estruturas/linguagens do lado do servidor constroem uma página tratando-a como uma árvore DOM desde o início - inserindo nós em vez de ecoar strings?Acho que seria muito útil se o código do lado do cliente e do lado do servidor vissem a página da mesma maneira.Você certamente poderia hackear algo assim em qualquer linguagem de servidor web, mas uma estrutura dedicada à criação de uma página dessa maneira poderia fazer algumas otimizações muito boas.
Código aberto, amplamente implantado e já existente há algum tempo seriam vantagens.
Solução
Você está descrevendo Rinoceronte nos trilhos, que ainda não foi lançado, mas será em breve.De forma similar, Aptana Jaxer, no entanto, o RnR incluirá uma estrutura real (Rails), enquanto o Jaxer é apenas a tecnologia de servidor.
Outras dicas
O servidor Jaxer AJAX do Aptana pode ser algo para você conferir, já que ele também usa JS do lado do servidor.
Dito isto, eu diria que é melhor não gerar sua marcação com instruções de impressão ou ecos, mas sim modelar e conectar seu conteúdo dinâmico.
Jaxer é javascript do lado do servidor + o DOM.Você pode integrar o jaxer com outras linguagens, pós-processando sua saída.
Também em java, php, ...você pode usar o XPath para manipular o DOM.
Entendo de onde você vem, mas é tudo um pouco discutível, não é?Você não pode enviar nada além de conteúdo renderizado para o navegador e precisa fazer tudo de uma só vez (AJAX à parte).Não há valor no que você está sugerindo (pelo que posso ver), pois mesmo que você construa em forma de árvore, ainda estará construindo apenas uma página que é enviada por atacado ao cliente.