Megjelent a Pusa webkeretrendszer, amely átviszi a front-end logikáját, amelyet a JavaScript a böngészőben hajt végre, a háttérfelületre: a böngésző és a DOM elemek kezelése, valamint az üzleti logika a háttéren valósul meg. A böngészőben futó JavaScript kódot egy univerzális réteg váltja fel, amely a háttéren található kezelőket hívja meg. A JavaScript használata a front-end fejlesztéshez már nem szükséges. A Pusa referenciaimplementációját PHP nyelven készítették, amely a GPLv3 licenc alatt terjeszthető. A technológia más nyelveken, például JavaScript/Node.js, Java, Python, Go és Ruby nyelven is megvalósítható.
A Pusa egy minimalista parancsokból álló protokollt határoz meg. Az oldal betöltődésekor a böngésző betölti a DOM alapvető tartalmát és a Pusa-Front JavaScript magját. A Pusa-Front Ajax kéréseken keresztül továbbítja a böngésző eseményeit (például kattintás, elhalványulás, fókuszálás és billentyűleütés) és a kérés paramétereit (az eseményt kiváltó elem, annak attribútumai, URL stb.) a Pusa-Back szerverkezelőhöz. A kapott adatok alapján a Pusa-Back meghatározza a vezérlőt, végrehajtja a hasznos terhelést, és összegzi a válasz parancsait. A kért válasz megérkezése után a Pusa-Front végrehajtja a parancsokat, módosítva a DOM tartalmát és a böngésző környezetét.
A front-end állapota létrejön, de nem kontrollálja a háttérfelület, ami a Pusa fejlesztését a grafikus kártyához vagy a Canvas-hoz hasonlóvá teszi, ahol a végrehajtás kimenetét a fejlesztő nem ellenőrzi. Az interaktív alkalmazások létrehozásához a Canvas alapján és az onmousemove eseményhez lehetőség van további JavaScript szkriptek betöltésére és használatára az ügyfélnél. A módszer hátrányaként említik, hogy a terhelés egy része a front-endről a háttére költözik, és az adatcserék gyakorisága növekszik. szerverrel.
A hátrányok között emelhetők ki: a front-end JavaScript fejlesztők részvételének szükségtelensége, a stabil és kompakt kliensoldali kód (11 kB), a front-end oldaláról a fő kód elérhetetlensége, a REST sorosítása és a gRPC típusú eszközök szükségtelensége, valamint a kérésirányítási problémák elkerülése a front-end és a háttér között.
Forrás: opennet.ru
