Kuadri ueb Pusa që transferon logjikën e pjesës së përparme të JavaScript në anën e serverit

Korniza ueb Pusa është publikuar me zbatimin e një koncepti që transferon logjikën e përparme, të ekzekutuar në shfletues duke përdorur JavaScript, në anën e pasme - menaxhimi i shfletuesit dhe elementëve DOM, si dhe logjika e biznesit kryhet në fundi i pasëm. Kodi JavaScript i ekzekutuar në anën e shfletuesit zëvendësohet me një shtresë universale që thërret mbajtësit e vendosur në anën e pasme. Nuk ka nevojë të zhvillohet duke përdorur JavaScript për pjesën e përparme. Implementimi i referencës Pusa është shkruar në PHP dhe është i licencuar sipas GPLv3. Përveç PHP, teknologjia mund të zbatohet në çdo gjuhë tjetër, duke përfshirë JavaScript/Node.js, Java, Python, Go dhe Ruby.

Pusa përcakton një protokoll shkëmbimi bazuar në një grup komandash minimaliste. Kur faqja ngarkohet, shfletuesi ngarkon përmbajtjen themelore të DOM dhe bërthamën JavaScript të Pusa-Front. Pusa-Front dërgon ngjarjet e shfletuesit (të tilla si klikimi, turbullimi, fokusimi dhe shtypja e tastit) dhe parametrat e kërkesave (elementi që shkaktoi ngjarjen, atributet e tij, URL, etj.) te mbajtësi i serverit Pusa-Back duke përdorur kërkesat Ajax. Bazuar në të dhënat e marra, Pusa-Back përcakton kontrolluesin, ekzekuton ngarkesën dhe gjeneron një grup komandash përgjigjeje. Pasi ka marrë përgjigjen e kërkesës, Pusa-Front ekzekuton komanda, duke ndryshuar përmbajtjen e DOM dhe mjedisin e shfletuesit.

Gjendja e frontendit gjenerohet, por nuk kontrollohet nga prapavija, gjë që e bën zhvillimin për Pusa të ngjashëm me kodin për një kartë video ose Canvas, ku rezultati i ekzekutimit nuk kontrollohet nga zhvilluesi. Për të krijuar aplikacione interaktive të bazuara në Canvas dhe onmousemove, është e mundur të shkarkohen dhe të përdoren skriptet shtesë JavaScript në anën e klientit. Ndër disavantazhet e metodës, ekziston gjithashtu një transferim i një pjese të ngarkesës nga pjesa e përparme në pjesën e pasme dhe një rritje në frekuencën e shkëmbimit të të dhënave me serverin.

Ndër avantazhet janë: eliminimi i nevojës për pjesëmarrjen e zhvilluesve të JavaScript front-end, kodi i qëndrueshëm dhe kompakt i klientit (11 kb), paarritshmëria e kodit kryesor nga front-end, nuk ka nevojë për serializimin REST dhe mjete si gRPC, eliminimi i problemet e koordinimit të rrugëtimit të kërkesave ndërmjet front-end dhe back-end.

Burimi: opennet.ru

Shto një koment