Pusa žiniatinklio sistema, perduodanti „JavaScript“ sąsajos logiką į serverio pusę

Pusa žiniatinklio karkasas buvo išleistas įdiegus koncepciją, kuri perkelia priekinės dalies logiką, vykdomą naršyklėje naudojant JavaScript, į back-end pusę - naršyklės ir DOM elementų valdymas bei verslo logika atliekama galinė dalis. Naršyklės pusėje vykdomas JavaScript kodas pakeičiamas universaliu sluoksniu, kuris iškviečia tvarkykles, esančias užpakalinėje pusėje. Nereikia kurti naudojant „JavaScript“ priekinėje dalyje. Pusa nuorodos įgyvendinimas parašytas PHP ir yra licencijuotas pagal GPLv3. Be PHP, technologija gali būti įdiegta bet kuria kita kalba, įskaitant JavaScript/Node.js, Java, Python, Go ir Ruby.

Pusa apibrėžia mainų protokolą, pagrįstą minimalistiniu komandų rinkiniu. Kai puslapis įkeliamas, naršyklė įkelia pagrindinį DOM turinį ir Pusa-Front JavaScript branduolį. Pusa-Front siunčia naršyklės įvykius (tokius kaip paspaudimas, suliejimas, fokusavimas ir klavišų paspaudimas) ir užklausos parametrus (elementą, sukėlusį įvykį, jo atributus, URL ir kt.) Pusa-Back serverio tvarkyklei naudodama Ajax užklausas. Remdamasi gautais duomenimis, Pusa-Back nustato valdiklį, vykdo naudingą apkrovą ir generuoja atsako komandų rinkinį. Gavusi užklausos atsakymą, Pusa-Front vykdo komandas, keičia DOM turinį ir naršyklės aplinką.

Frontend būsena yra generuojama, bet nevaldoma backend, todėl Pusa kūrimas panašus į vaizdo plokštės arba Canvas kodą, kai vykdymo rezultato nevaldo kūrėjas. Norint sukurti interaktyvias programas, pagrįstas Canvas ir onmousemove, galima atsisiųsti ir naudoti papildomus JavaScript scenarijus kliento pusėje. Tarp metodo trūkumų taip pat galima paminėti dalies apkrovos perkėlimą iš priekinės dalies į užpakalinę dalį ir duomenų mainų su serveriu dažnio padidėjimą.

Tarp privalumų yra šie: „JavaScript“ priekinės dalies kūrėjų dalyvavimo poreikio pašalinimas, stabilus ir kompaktiškas kliento kodas (11 kb), pagrindinio kodo nepasiekimas iš priekinės dalies, nereikia REST serializavimo ir įrankių, tokių kaip gRPC, pašalina problemų, susijusių su užklausų nukreipimo tarp priekinės ir galinės dalies koordinavimo.

Šaltinis: opennet.ru

Добавить комментарий