Bol inkognito web framework Pusa, ktorý prenáša logiku frontendu vykonávanú v prehliadači pomocou JavaScriptu na stranu backendu — správa prehliadača a DOM elementov, ako aj obchodná logika sa vykonáva na backendu. Vykonávaný kód JavaScript na strane prehliadača je nahradený univerzálnou vrstvou, ktorá vyvoláva spracovateľov nachádzajúcich sa na strane backendu. Nie je potrebný vývoj s použitím JavaScriptu pre frontend. Referenčná implementácia Pusa je napísaná v jazyku PHP a je distribuovaná pod licenciou GPLv3. Okrem PHP môže byť technológia implementovaná aj v iných jazykoch, vrátane JavaScriptu/Node.js, Javy, Pythonu, Go a Ruby.
Pusa definuje protokol výmeny na základe minimalistickej sady príkazov. Pri načítaní stránky prehliadač načíta základný obsah DOM a JavaScript jadro Pusa-Front. Pusa-Front prostredníctvom Ajax požiadaviek smeruje udalosti prehliadača (ako kliknutia, zaostrenie, opustenie a stlačenie klávesu) a parametre požiadavky (element, ktorý spôsobil udalosť, jeho atribúty, URL atď.) do serverového spracovateľa Pusa-Back. Na základe prijatých údajov Pusa-Back určuje kontroler, vykonáva užitočnú záťaž a formuluje odpovedajúcu sadu príkazov. Po prijatí odpovede požiadavky Pusa-Front vykonáva príkazy, pričom mení obsah DOM a prostredie prehliadača.
Stav frontendu sa formuje, ale nekontroluje backend, čo robí vývoj pre Pusa podobný kódu pre grafickú kartu alebo Canvas, kde výsledok vykonávania nie je kontrolovaný vývojárom. Pre vytváranie interaktívnych aplikácií na báze Canvas a onmousemove je predpokladaná možnosť načítania a využitia dodatočných JavaScript skriptov na strane klienta. Medzi nevýhody metódy patrí aj prenášanie časti záťaže z frontendu na backend a zvyšovanie frekvencie výmeny údajov. serverom.
Medzi výhody patrí: vylúčenie potreby účasti JavaScript vývojárov frontendu, stabilný a kompaktný klientsky kód (11 kB), nedostupnosť základného kódu zo strany frontendu, nenútená serializácia REST a prostriedkov ako gRPC, vylúčenie problémov s urovnávaním smerovania požiadaviek medzi frontendom a backendom.
Zdroj: opennet.ru
