Webowy framework Pusa, przenoszący logikę front-endu JavaScript na stronę serwera

Opublikowano framework webowy Pusa, który przenosi logikę frontendową wykonywaną w przeglądarce przy użyciu JavaScript na stronę backendu - zarządzanie przeglądarką oraz elementami DOM, a także logika biznesowa wykonuje się po stronie backendu. Kod JavaScript wykonywany po stronie przeglądarki jest zastępowany przez uniwersalną warstwę, która wywołuje obsługiwacze znajdujące się po stronie backendu. Nie ma konieczności opracowywania przy użyciu JavaScript dla frontend. Referencyjna implementacja Pusa napisana jest w języku PHP i rozpowszechniana na licencji GPLv3. Poza PHP technologia może być zaimplementowana w dowolnym innym języku, w tym JavaScript/Node.js, Java, Python, Go i Ruby.

Pusa definiuje protokół wymiany oparty na minimalistycznym zestawie poleceń. Podczas ładowania strony przeglądarka ładowała podstawową zawartość DOM oraz rdzeń JavaScript Pusa-Front. Pusa-Front, za pomocą zapytań Ajax, przesyła zdarzenia przeglądarki (takie jak kliknięcie, utrataostrości, skupienie i naciśnięcie klawisza) oraz parametry zapytania (element, który wywołał zdarzenie, jego atrybuty, URL itd.) do serwerowego obsługiwacza Pusa-Back. Na podstawie otrzymanych danych Pusa-Back określa kontroler, wykonuje ładunek użyteczny i formułuje odpowiedź zestawu poleceń. Po otrzymaniu odpowiedzi z zapytania Pusa-Front wykonuje polecenia, zmieniając zawartość DOM i otoczenie przeglądarki.

Stan frontendu jest kształtowany, ale nie kontrolowany przez backend, co sprawia, że rozwój dla Pusa jest podobny do kodu dla karty graficznej lub Canvas, gdzie wynik wykonania nie jest kontrolowany przez programistę. Aby tworzyć interaktywne aplikacje oparte na Canvas i onmousemove, przewidziano możliwość ładowania i używania dodatkowych skryptów JavaScript po stronie klienta. Wśród wad metody zauważa się również przeniesienie części obciążenia z frontendu na backend oraz zwiększenie częstotliwości wymiany danych z. serwerem.

Do zalet należy: wyeliminowanie potrzeby angażowania programistów JavaScript frontendowych, stabilny i kompaktowy kod po stronie klienta (11 kB), niedostępność głównego kodu po stronie frontendu, brak potrzeby serializacji REST oraz narzędzi typu gRPC, a także wyeliminowanie problemów z uzgadnianiem routingu zapytań między frontendem a backendem.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster