Pusa веб-рамка која ја пренесува JavaScript предната логика на страната на серверот

Веб рамката Pusa е објавена со имплементација на концепт кој ја пренесува логиката на предниот дел, извршена во прелистувачот со помош на JavaScript, на задната страна - управувањето со прелистувачот и елементите на DOM, како и деловната логика се врши на задниот дел. Кодот на JavaScript извршен на страната на прелистувачот се заменува со универзален слој што ги повикува управувачите лоцирани на задната страна. Нема потреба да се развива користејќи JavaScript за предниот дел. Референтната имплементација на Pusa е напишана во PHP и е лиценцирана според GPLv3. Покрај PHP, технологијата може да се имплементира на кој било друг јазик, вклучувајќи JavaScript/Node.js, Java, Python, Go и Ruby.

Пуса дефинира протокол за размена базиран на минималистички сет на команди. Кога страницата се вчитува, прелистувачот ја вчитува основната содржина на DOM и јадрото JavaScript на Pusa-Front. Pusa-Front испраќа настани на прелистувачот (како што се кликнување, заматување, фокусирање и притискање на копче) и параметри за барање (елементот што го предизвика настанот, неговите атрибути, URL-то, итн.) до управувачот на серверот Pusa-Back со помош на барањата на Ajax. Врз основа на добиените податоци, Pusa-Back го одредува контролорот, го извршува товарот и генерира сет на команди за одговор. Откако го доби одговорот на барањето, Pusa-Front извршува команди, менувајќи ја содржината на DOM и околината на прелистувачот.

Состојбата на предниот дел се генерира, но не е контролирана од задниот дел, што го прави развојот за Pusa сличен на кодот за видео картичка или Canvas, каде што резултатот од извршувањето не е контролиран од развивачот. За да креирате интерактивни апликации базирани на Canvas и onmousemove, можно е да се преземат и користат дополнителни JavaScript скрипти на страната на клиентот. Меѓу недостатоците на методот, постои и пренос на дел од товарот од предниот дел на задниот дел и зголемување на фреквенцијата на размена на податоци со серверот.

Меѓу предностите се: елиминирање на потребата за учество на JavaScript предни програмери, стабилен и компактен клиентски код (11 kb), непристапност до главниот код од предниот дел, нема потреба од REST серијализација и алатки како gRPC, елиминирање на проблеми со координирање на рутирањето на барањата помеѓу предниот и задниот дел.

Извор: opennet.ru

Додадете коментар