Пуса веб оквир који преноси ЈаваСцрипт фронт-енд логику на страну сервера

Пуса веб фрамеворк је објављен са имплементацијом концепта који преноси фронт-енд логику, извршену у претраживачу помоћу ЈаваСцрипт-а, на бек-енд страну - управљање претраживачем и ДОМ елементима, као и пословна логика се врши на бацк-енд. ЈаваСцрипт код који се извршава на страни претраживача је замењен универзалним слојем који позива руковаоце који се налазе на позадинској страни. Нема потребе за развојем користећи ЈаваСцрипт за предњи крај. Пуса референтна имплементација је написана у ПХП-у и лиценцирана је под ГПЛв3. Поред ПХП-а, технологија се може имплементирати на било ком другом језику, укључујући ЈаваСцрипт/Ноде.јс, Јава, Питхон, Го и Руби.

Пуса дефинише протокол размене заснован на минималистичком скупу команди. Када се страница учита, претраживач учитава основни ДОМ садржај и Пуса-Фронт ЈаваСцрипт језгро. Пуса-Фронт шаље догађаје претраживача (као што су клик, замућење, фокус и притисак на тастер) и параметре захтева (елемент који је изазвао догађај, његови атрибути, УРЛ, итд.) Руковачу сервера Пуса-Бацк користећи Ајак захтеве. На основу примљених података, Пуса-Бацк одређује контролер, извршава терет и генерише одговор скуп команди. Након што је добио одговор на захтев, Пуса-Фронт извршава команде, мењајући садржај ДОМ-а и окружења претраживача.

Стање фронтенда се генерише, али га не контролише бацкенд, што развој за Пусу чини сличним коду за видео картицу или Цанвас, где резултат извршења не контролише програмер. Да бисте креирали интерактивне апликације засноване на Цанвас-у и онмоусемове-у, могуће је преузети и користити додатне ЈаваСцрипт скрипте на страни клијента. Међу недостацима методе је и пренос дела оптерећења са фронтенда на бекенд и повећање учесталости размене података са сервером.

Међу предностима су: елиминисање потребе за учешћем фронт-енд ЈаваСцрипт програмера, стабилан и компактан клијентски код (11кб), недоступност главног кода са фронт-енд-а, нема потребе за РЕСТ серијализацијом и алатима као што је гРПЦ, елиминисање проблеми координације рутирања захтева између фронт-енд и бацк-енд.

Извор: опеннет.ру

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