Уеб рамка Pusa, пренасяща логиката на JavaScript фронтенда на сървърната страна

Публикуван е уеб фреймворк Pusa с реализация на концепцията, пренасяща логиката на фронтенда, изпълнявана в браузера с помощта на JavaScript, на страната на бекенда — управлението на браузера и DOM елементи, както и бизнес логиката, се изпълняват на бекенда. Изпълняваният на страната на браузера JavaScript код се заменя с универсален слой, който извиква обработчици, намиращи се на страната на бекенда. Необходимостта от разработка с използване на JavaScript за фронтенда е отсъстваща. Референтната реализация Pusa е написана на PHP и се разпространява под лиценз GPLv3. Освен PHP, технологията може да бъде реализирана на друг език, включително JavaScript/Node.js, Java, Python, Go и Ruby.

Pusa определя протокол за обмен на база минималистичен набор команди. При зареждане на страницата браузерът зарежда основното съдържание на DOM и JavaScript ядрото Pusa-Front. Pusa-Front чрез Ajax заявки насочва събитията на браузера (като click, blur, focus и keypress) и параметрите на заявките (елементът, предизвикал събитието, неговите атрибути, URL и т.н.) към сървърния обработчик Pusa-Back. На базата на получените данни Pusa-Back определя контролер, изпълнява полезната информация и формулира отговорен набор команди. Получавайки отговор на заявката, Pusa-Front изпълнява командите, променяйки съдържанието на DOM и околната среда на браузера.

Състоянието на фронтенда се формира, но не се контролира от бекенда, което прави разработката за Pusa подобна на кода за видеокарта или Canvas, където резултатът от изпълнението не се контролира от разработчика. За създаване на интерактивни приложения на база Canvas и onmousemove е предвидена възможност за зареждане и използване на допълнителни JavaScript скриптове на страната на клиента. От недостатъците на метода също така се отбелязва прехвърлянето на част от натоварването от фронтенда на бекенда и увеличаването на честотата на обмена на данни. сървър.

Сред предимствата се открояват: изключване на необходимостта от участие на JavaScript разработчици за фронтенд, стабилен и компактен клиентски код (11kb), недостъпност на основния код от страната на фронтенда, отсъствието на необходимост в сериализацията на REST и в средства като gRPC, изключване на проблемите с координирането на маршрутизацията на запитванията между фронтенда и бекенда.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster