Pusa-webframework dat front-end-logica van JavaScript naar de serverzijde overbrengt

Het Pusa-webframework is gepubliceerd met de implementatie van een concept dat de front-endlogica, uitgevoerd in de browser met behulp van JavaScript, overbrengt naar de back-endzijde - het beheer van de browser- en DOM-elementen, evenals bedrijfslogica worden uitgevoerd op de achterkant. De JavaScript-code die aan de browserzijde wordt uitgevoerd, wordt vervangen door een universele laag die handlers aanroept die zich aan de backend-zijde bevinden. Het is niet nodig om voor de front-end JavaScript te ontwikkelen. De Pusa-referentie-implementatie is geschreven in PHP en heeft een licentie onder de GPLv3. Naast PHP kan de technologie in elke andere taal worden geïmplementeerd, waaronder JavaScript/Node.js, Java, Python, Go en Ruby.

Pusa definieert een uitwisselingsprotocol op basis van een minimalistische reeks opdrachten. Wanneer de pagina wordt geladen, laadt de browser de onderliggende DOM-inhoud en de JavaScript-kern van Pusa-Front. Pusa-Front verzendt browsergebeurtenissen (zoals klikken, vervagen, focus en toetsaanslag) en verzoekparameters (het element dat de gebeurtenis veroorzaakte, de attributen ervan, URL, enz.) naar de Pusa-Back-serverhandler met behulp van Ajax-verzoeken. Op basis van de ontvangen gegevens bepaalt Pusa-Back de controller, voert de payload uit en genereert een responsset met opdrachten. Na ontvangst van het verzoekantwoord voert Pusa-Front opdrachten uit, waardoor de inhoud van de DOM en de browseromgeving wordt gewijzigd.

De status van de frontend wordt gegenereerd maar niet gecontroleerd door de backend, waardoor de ontwikkeling voor Pusa vergelijkbaar is met code voor een videokaart of Canvas, waarbij het resultaat van de uitvoering niet wordt bepaald door de ontwikkelaar. Om interactieve applicaties te maken op basis van Canvas en onmousemove, is het mogelijk om aanvullende JavaScript-scripts aan de clientzijde te downloaden en te gebruiken. Tot de nadelen van de methode behoren ook de overdracht van een deel van de belasting van de frontend naar de backend en een toename van de frequentie van gegevensuitwisseling met de server.

Enkele van de voordelen zijn: het elimineren van de noodzaak voor de deelname van JavaScript front-end ontwikkelaars, stabiele en compacte clientcode (11kb), ontoegankelijkheid van de hoofdcode vanaf de front-end, geen noodzaak voor REST-serialisatie en tools zoals gRPC, waardoor de problemen bij het coördineren van verzoekroutering tussen de front-end en de back-end.

Bron: opennet.ru

Voeg een reactie