Pusa webes keretrendszer, amely a JavaScript front-end logikáját továbbítja a szerveroldalra

A Pusa webes keretrendszer egy olyan koncepció megvalósításával jelent meg, amely a böngészőben JavaScript segítségével végrehajtott front-end logikát a back-end oldalra viszi át - a böngésző és a DOM elemek, valamint az üzleti logika kezelését végzik. a back-end. A böngésző oldalon végrehajtott JavaScript-kódot egy univerzális réteg váltja fel, amely a háttéroldalon található kezelőket hívja meg. Nincs szükség a fejlesztésre a JavaScript használatával a kezelőfelülethez. A Pusa referencia implementáció PHP nyelven íródott, és a GPLv3 licenc alatt van. A technológia a PHP-n kívül bármilyen más nyelven is megvalósítható, beleértve a JavaScriptet/Node.js-t, a Java-t, a Python-t, a Go-t és a Rubyt.

A Pusa egy minimalista parancskészleten alapuló csereprotokollt definiál. Az oldal betöltésekor a böngésző betölti a mögöttes DOM-tartalmat és a Pusa-Front JavaScript-magját. A Pusa-Front Ajax kérések segítségével küldi el a böngésző eseményeit (például kattintás, elmosódás, fókusz és gombnyomás) és kérési paramétereket (az eseményt okozó elemet, annak attribútumait, URL-jét stb.) a Pusa-Back szerver kezelőjének. A Pusa-Back a kapott adatok alapján meghatározza a vezérlőt, végrehajtja a hasznos terhelést, és parancssort generál. A Pusa-Front a kérés válaszát követően parancsokat hajt végre, megváltoztatva a DOM és a böngésző környezet tartalmát.

A frontend állapotát a háttérrendszer generálja, de nem szabályozza, így a Pusa fejlesztése hasonló a videokártya vagy a Canvas kódjához, ahol a végrehajtás eredményét nem a fejlesztő szabályozza. A Canvas és onmousemove alapú interaktív alkalmazások létrehozásához lehetőség van további JavaScript szkriptek letöltésére és használatára a kliens oldalon. A módszer hátrányai közé tartozik az is, hogy a terhelés egy része a frontendről a háttérbe kerül, és megnő az adatcsere gyakorisága a szerverrel.

Az előnyök közé tartozik: nincs szükség a JavaScript front-end fejlesztőinek részvételére, stabil és kompakt klienskód (11 kb), a fő kód elérhetetlensége a front-endről, nincs szükség REST szerializálásra és olyan eszközökre, mint a gRPC, kiküszöböli a problémák a kérés-útválasztás koordinálásával kapcsolatban a front-end és a back-end között.

Forrás: opennet.ru

Hozzászólás