Pusa web framework koji prenosi JavaScript front-end logiku na serversku stranu

Pusa web framework je objavljen sa implementacijom koncepta koji prenosi front-end logiku, izvršenu u pretraživaču pomoću JavaScripta, na back-end stranu - upravljanje pretraživačem i DOM elementima, kao i poslovna logika se vrši na back-end. JavaScript kod koji se izvršava na strani pretraživača zamenjen je univerzalnim slojem koji poziva rukovaoce koji se nalaze na pozadinskoj strani. Nema potrebe za razvojem koristeći JavaScript za prednji kraj. Pusa referentna implementacija je napisana u PHP-u i licencirana je pod GPLv3. Pored PHP-a, tehnologija se može implementirati na bilo kom drugom jeziku, uključujući JavaScript/Node.js, Java, Python, Go i Ruby.

Pusa definira protokol razmjene baziran na minimalističkom skupu naredbi. Kada se stranica učita, pretraživač učitava osnovni DOM sadržaj i Pusa-Front-ovu JavaScript jezgru. Pusa-Front šalje događaje pretraživača (kao što su klik, zamućenje, fokus i pritisak na taster) i parametre zahteva (element koji je izazvao događaj, njegovi atributi, URL, itd.) rukovaocu Pusa-Back servera koristeći Ajax zahteve. Na osnovu primljenih podataka, Pusa-Back određuje kontroler, izvršava teret i generiše odgovor skup komandi. Nakon što je primio odgovor na zahtjev, Pusa-Front izvršava komande, mijenjajući sadržaj DOM-a i okruženja pretraživača.

Stanje frontenda je generisano, ali ga ne kontroliše backend, što razvoj za Pusu čini sličnim kodu za video karticu ili Canvas, gde rezultat izvršenja nije kontrolisan od strane programera. Za kreiranje interaktivnih aplikacija zasnovanih na Canvas i onmousemove, moguće je preuzeti i koristiti dodatne JavaScript skripte na strani klijenta. Među nedostacima metode je i prijenos dijela opterećenja sa frontenda na backend i povećanje učestalosti razmjene podataka sa serverom.

Među prednostima su: eliminacija potrebe za učešćem JavaScript front-end programera, stabilan i kompaktan klijentski kod (11kb), nedostupnost glavnog koda sa front-end-a, nema potrebe za REST serijalizacijom i alatima kao što je gRPC, eliminisanje problemi koordinacije rutiranja zahtjeva između front-enda i back-enda.

izvor: opennet.ru

Dodajte komentar