Pusa veebiraamistik, mis kannab JavaScripti esiotsa loogika serveri poolele

Pusa veebiraamistik on avaldatud kontseptsiooni juurutamisega, mis kannab brauseris JavaScripti abil käivitatava esiotsa loogika tagaküljele - brauseri ja DOM-i elementide ning äriloogika haldamine toimub tagaosa. Brauseri poolel käivitatav JavaScripti kood asendatakse universaalse kihiga, mis kutsub esile taustaküljel asuvaid töötlejaid. Esiotsa JavaScripti kasutades pole vaja arendada. Pusa viiterakendus on kirjutatud PHP-s ja litsentsitud GPLv3 alusel. Lisaks PHP-le saab tehnoloogiat rakendada ka mis tahes muus keeles, sealhulgas JavaScript/Node.js, Java, Python, Go ja Ruby.

Pusa määratleb vahetusprotokolli, mis põhineb minimalistlikul käskude komplektil. Lehe laadimisel laadib brauser selle aluseks oleva DOM-i sisu ja Pusa-Fronti JavaScripti tuuma. Pusa-Front saadab Ajaxi päringuid kasutades Pusa-Backi serveritöötlejale brauseri sündmused (nagu klõps, hägusus, fookus ja klahvivajutus) ja päringu parameetreid (sündmuse põhjustanud element, selle atribuudid, URL jne). Saadud andmete põhjal määrab Pusa-Back kontrolleri, täidab kasuliku koormuse ja genereerib käskude vastusekomplekti. Pärast päringu vastuse saamist täidab Pusa-Front käske, muutes DOM-i ja brauseri keskkonna sisu.

Esiosa olekut genereerib, kuid taustaprogramm ei kontrolli, mis muudab Pusa arenduse sarnaseks videokaardi või Canvase koodiga, kus käivitamise tulemust arendaja ei kontrolli. Canvasel ja onmousemove’il põhinevate interaktiivsete rakenduste loomiseks on võimalik kliendi poolel alla laadida ja kasutada täiendavaid JavaScripti skripte. Meetodi puuduste hulgas on ka osa koormuse ülekandmine esiservast taustaprogrammi ja andmevahetuse sageduse suurenemine serveriga.

Eeliste hulgas on järgmised: JavaScripti esiotsa arendajate osalemise vajaduse kaotamine, stabiilne ja kompaktne kliendikood (11 kb), põhikoodi kättesaamatus esiotsast, puudub vajadus REST-serialiseerimise ja selliste tööriistade nagu gRPC järele, kõrvaldades probleemid päringu marsruutimise koordineerimisel esi- ja tagaotsa vahel.

Allikas: opennet.ru

Lisa kommentaar