Framework Web Pusa qui transfère la logique frontale JavaScript côté serveur

Le framework Web Pusa a été publié avec la mise en œuvre d'un concept qui transfère la logique frontale, exécutée dans le navigateur à l'aide de JavaScript, vers le côté back-end - la gestion du navigateur et des éléments DOM, ainsi que la logique métier sont effectuées sur le back-end. Le code JavaScript exécuté côté navigateur est remplacé par une couche universelle qui appelle les gestionnaires situés côté backend. Il n'est pas nécessaire de développer en utilisant JavaScript pour le front-end. L'implémentation de référence Pusa est écrite en PHP et est sous licence GPLv3. En plus de PHP, la technologie peut être implémentée dans n'importe quel autre langage, notamment JavaScript/Node.js, Java, Python, Go et Ruby.

Pusa définit un protocole d'échange basé sur un ensemble minimaliste de commandes. Lorsque la page se charge, le navigateur charge le contenu DOM sous-jacent et le noyau JavaScript de Pusa-Front. Pusa-Front envoie les événements du navigateur (tels que le clic, le flou, le focus et la pression sur une touche) et les paramètres de requête (l'élément qui a provoqué l'événement, ses attributs, l'URL, etc.) au gestionnaire de serveur Pusa-Back à l'aide de requêtes Ajax. Sur la base des données reçues, Pusa-Back détermine le contrôleur, exécute la charge utile et génère un ensemble de commandes de réponse. Après avoir reçu la réponse à la demande, Pusa-Front exécute des commandes, modifiant le contenu du DOM et l'environnement du navigateur.

L'état du frontend est généré mais n'est pas contrôlé par le backend, ce qui rend le développement pour Pusa similaire au code d'une carte vidéo ou Canvas, où le résultat de l'exécution n'est pas contrôlé par le développeur. Pour créer des applications interactives basées sur Canvas et onmousemove, il est possible de télécharger et d'utiliser des scripts JavaScript supplémentaires côté client. Parmi les inconvénients de la méthode, il y a aussi un transfert d'une partie de la charge du frontend vers le backend et une augmentation de la fréquence des échanges de données avec le serveur.

Parmi les avantages figurent : l'élimination du besoin de participation de développeurs front-end JavaScript, un code client stable et compact (11 Ko), l'inaccessibilité du code principal depuis le front-end, pas besoin de sérialisation REST et d'outils comme gRPC, éliminant le problèmes de coordination du routage des requêtes entre le front-end et le back-end.

Source: opennet.ru

Ajouter un commentaire