Spletno ogrodje Pusa, ki prenaša front-end logiko JavaScript na stran strežnika

Objavljeno je bilo spletno ogrodje Pusa z implementacijo koncepta, ki sprednjo logiko, ki se izvaja v brskalniku s pomočjo JavaScripta, prenese na zaledno stran – upravljanje brskalnika in elementov DOM ter poslovne logike se izvaja na zadnji del. Koda JavaScript, ki se izvaja na strani brskalnika, je nadomeščena z univerzalno plastjo, ki kliče upravljalnike, ki se nahajajo na strani zaledja. Ni potrebe po razvoju z uporabo JavaScripta za sprednji del. Referenčna implementacija Pusa je napisana v PHP in je licencirana pod GPLv3. Poleg PHP je tehnologijo mogoče implementirati v kateri koli drug jezik, vključno z JavaScript/Node.js, Javo, Python, Go in Ruby.

Pusa definira protokol izmenjave, ki temelji na minimalističnem naboru ukazov. Ko se stran naloži, brskalnik naloži osnovno vsebino DOM in jedro JavaScripta Pusa-Front. Pusa-Front pošlje dogodke brskalnika (kot so klik, zamegljenost, fokus in pritisk tipke) in parametre zahteve (element, ki je povzročil dogodek, njegove atribute, URL itd.) upravljavcu strežnika Pusa-Back z uporabo zahtev Ajax. Na podlagi prejetih podatkov Pusa-Back določi krmilnik, izvede obremenitev in generira odzivni niz ukazov. Ko prejme odgovor na zahtevo, Pusa-Front izvede ukaze, spremeni vsebino DOM in okolje brskalnika.

Stanje sprednjega dela je generirano, vendar ga ne nadzoruje zaledje, zaradi česar je razvoj za Puso podoben kodi za video kartico ali Canvas, kjer rezultat izvajanja ni pod nadzorom razvijalca. Za ustvarjanje interaktivnih aplikacij, ki temeljijo na Canvas in onmousemove, je možno prenesti in uporabiti dodatne JavaScript skripte na strani odjemalca. Med slabostmi metode je tudi prenos dela obremenitve s frontenda na backend in povečanje frekvence izmenjave podatkov s strežnikom.

Med prednostmi so: odprava potrebe po sodelovanju sprednjih razvijalcev JavaScripta, stabilna in kompaktna koda odjemalca (11kb), nedostopnost glavne kode iz sprednjega dela, ni potrebe po serializaciji REST in orodij, kot je gRPC, odprava težave pri usklajevanju usmerjanja zahtev med sprednjim in zadnjim delom.

Vir: opennet.ru

Dodaj komentar