Estrutura da web Pusa que transfere a lógica de front-end JavaScript para o lado do servidor

O framework web Pusa foi publicado com a implementação de um conceito que transfere a lógica front-end, executada no navegador usando JavaScript, para o back-end - o gerenciamento do navegador e dos elementos DOM, bem como a lógica de negócio são realizados em o back-end. O código JavaScript executado no navegador é substituído por uma camada universal que chama manipuladores localizados no backend. Não há necessidade de desenvolver usando JavaScript para o front-end. A implementação de referência do Pusa é escrita em PHP e licenciada sob a GPLv3. Além do PHP, a tecnologia pode ser implementada em qualquer outra linguagem, incluindo JavaScript/Node.js, Java, Python, Go e Ruby.

Pusa define um protocolo de troca baseado em um conjunto minimalista de comandos. Quando a página é carregada, o navegador carrega o conteúdo DOM subjacente e o núcleo JavaScript do Pusa-Front. Pusa-Front envia eventos do navegador (como clique, desfoque, foco e pressionamento de tecla) e parâmetros de solicitação (o elemento que causou o evento, seus atributos, URL, etc.) para o manipulador do servidor Pusa-Back usando solicitações Ajax. Com base nos dados recebidos, o Pusa-Back determina o controlador, executa a carga útil e gera um conjunto de comandos de resposta. Ao receber a resposta da solicitação, o Pusa-Front executa comandos, alterando o conteúdo do DOM e o ambiente do navegador.

O estado do frontend é gerado, mas não controlado pelo backend, o que torna o desenvolvimento para Pusa semelhante ao código de uma placa de vídeo ou Canvas, onde o resultado da execução não é controlado pelo desenvolvedor. Para criar aplicações interativas baseadas em Canvas e onmousemove, é possível baixar e usar scripts JavaScript adicionais no lado do cliente. Entre as desvantagens do método estão também a transferência de parte da carga do frontend para o backend e o aumento na frequência de troca de dados com o servidor.

Entre as vantagens estão: eliminação da necessidade da participação de desenvolvedores front-end JavaScript, código cliente estável e compacto (11kb), inacessibilidade do código principal do front-end, dispensa de serialização REST e ferramentas como gRPC, eliminando o problemas de coordenação do roteamento de solicitações entre o front-end e o back-end.

Fonte: opennet.ru

Adicionar um comentário