Pusa web framework koji prenosi JavaScript front-end logiku na stranu poslužitelja

Objavljen je Pusa web framework s implementacijom koncepta koji front-end logiku, koja se izvodi u pregledniku pomoću JavaScripta, prenosi na pozadinsku stranu - upravljanje preglednikom i DOM elementima, kao i poslovnom logikom odvija se na pozadina. JavaScript kôd koji se izvršava na strani preglednika zamjenjuje se univerzalnim slojem koji poziva rukovatelje koji se nalaze na pozadinskoj strani. Nema potrebe za razvojem pomoću JavaScripta za front end. Referentna implementacija Pusa napisana je u PHP-u i licencirana je pod GPLv3. Uz PHP, tehnologija se može implementirati u bilo koji drugi jezik, uključujući JavaScript/Node.js, Java, Python, Go i Ruby.

Pusa definira protokol razmjene temeljen na minimalističkom skupu naredbi. Kada se stranica učita, preglednik učitava temeljni DOM sadržaj i Pusa-Frontovu JavaScript jezgru. Pusa-Front šalje događaje preglednika (kao što su klik, zamućenje, fokus i pritisak na tipku) i parametre zahtjeva (element koji je uzrokovao događaj, njegove atribute, URL itd.) Pusa-Back poslužitelju za rukovanje koristeći Ajax zahtjeve. Na temelju primljenih podataka, Pusa-Back određuje kontroler, izvršava korisni teret i generira skup odgovora naredbi. Nakon što primi odgovor na zahtjev, Pusa-Front izvršava naredbe, mijenjajući sadržaj DOM-a i okruženje preglednika.

Stanje frontenda generira se, ali ga ne kontrolira backend, što razvoj za Pusu čini sličnim kodu za video karticu ili Canvas, gdje rezultat izvršenja ne kontrolira programer. Za izradu interaktivnih aplikacija temeljenih na Canvasu i onmousemove, moguće je preuzeti i koristiti dodatne JavaScript skripte na strani klijenta. Među nedostacima metode je i prijenos dijela opterećenja s frontenda na backend te povećanje učestalosti razmjene podataka s poslužiteljem.

Među prednostima su: eliminacija potrebe za sudjelovanjem JavaScript front-end programera, stabilan i kompaktan klijentski kod (11 kb), nedostupnost glavnog koda s front-enda, nema potrebe za REST serijalizacijom i alatima poput gRPC-a, eliminacija problemi koordinacije usmjeravanja zahtjeva između front-end-a i back-end-a.

Izvor: opennet.ru

Dodajte komentar