Cadru web Pusa care transferă logica front-end JavaScript către partea serverului

Framework-ul web Pusa a fost publicat cu implementarea unui concept care transferă logica front-end, executată în browser folosind JavaScript, către back-end - gestionarea browser-ului și elementelor DOM, precum și logica de business sunt efectuate pe back-end-ul. Codul JavaScript executat pe partea browserului este înlocuit cu un strat universal care apelează handler-uri situate pe partea backend. Nu este nevoie să dezvoltați folosind JavaScript pentru front-end. Implementarea de referință Pusa este scrisă în PHP și este licențiată sub GPLv3. Pe lângă PHP, tehnologia poate fi implementată în orice alt limbaj, inclusiv JavaScript/Node.js, Java, Python, Go și Ruby.

Pusa definește un protocol de schimb bazat pe un set minimalist de comenzi. Când pagina se încarcă, browserul încarcă conținutul DOM de bază și nucleul JavaScript al Pusa-Front. Pusa-Front trimite evenimente din browser (cum ar fi clic, estompare, focalizare și apăsare de taste) și parametri de solicitare (elementul care a provocat evenimentul, atributele acestuia, URL-ul etc.) către gestionarea serverului Pusa-Back folosind cereri Ajax. Pe baza datelor primite, Pusa-Back determină controlerul, execută sarcina utilă și generează un set de comenzi de răspuns. După ce a primit răspunsul la cerere, Pusa-Front execută comenzi, modificând conținutul DOM-ului și al mediului browser.

Starea frontend-ului este generată, dar nu este controlată de backend, ceea ce face ca dezvoltarea pentru Pusa să fie similară cu codul pentru o placă video sau Canvas, unde rezultatul execuției nu este controlat de dezvoltator. Pentru a crea aplicații interactive bazate pe Canvas și onmousemove, este posibil să descărcați și să utilizați scripturi JavaScript suplimentare din partea clientului. Printre dezavantajele metodei, se numără și un transfer al unei părți din încărcare de la frontend la backend și o creștere a frecvenței schimbului de date cu serverul.

Printre avantaje se numără: eliminarea necesității participării dezvoltatorilor front-end JavaScript, cod client stabil și compact (11kb), inaccesibilitatea codului principal din front-end, lipsa necesității serializării REST și a instrumentelor precum gRPC, eliminarea probleme de coordonare a direcționării cererilor între front-end și back-end.

Sursa: opennet.ru

Adauga un comentariu