Pusa-webraamwerk wat JavaScript-voorkantlogika na die bedienerkant oordra

Die Pusa-webraamwerk is gepubliseer met die implementering van 'n konsep wat die front-end-logika, uitgevoer in die blaaier met behulp van JavaScript, na die back-end-kant oordra - die bestuur van die blaaier en DOM-elemente, sowel as besigheidslogika word uitgevoer op die agterkant. Die JavaScript-kode wat aan die blaaierkant uitgevoer word, word vervang met 'n universele laag wat hanteerders wat aan die agterkant geleë is, oproep. Dit is nie nodig om JavaScript vir die voorkant te gebruik nie. Die Pusa-verwysingsimplementering is in PHP geskryf en is onder die GPLv3 gelisensieer. Benewens PHP, kan die tegnologie in enige ander taal geïmplementeer word, insluitend JavaScript/Node.js, Java, Python, Go en Ruby.

Pusa definieer 'n uitruilprotokol gebaseer op 'n minimalistiese stel opdragte. Wanneer die bladsy laai, laai die blaaier die onderliggende DOM-inhoud en Pusa-Front se JavaScript-kern. Pusa-Front stuur blaaiergebeurtenisse (soos klik, vervaag, fokus en sleuteldruk) en versoekparameters (die element wat die gebeurtenis veroorsaak het, sy eienskappe, URL, ens.) na die Pusa-Back-bedienerhanteerder deur Ajax-versoeke te gebruik. Op grond van die ontvangde data, bepaal Pusa-Back die kontroleerder, voer die loonvrag uit en genereer 'n antwoordstel van opdragte. Nadat die versoekreaksie ontvang is, voer Pusa-Front opdragte uit, wat die inhoud van die DOM en die blaaieromgewing verander.

Die toestand van die frontend word gegenereer, maar word nie deur die backend beheer nie, wat ontwikkeling vir Pusa soortgelyk maak aan kode vir 'n videokaart of Canvas, waar die resultaat van uitvoering nie deur die ontwikkelaar beheer word nie. Om interaktiewe toepassings gebaseer op Canvas en onmousemove te skep, is dit moontlik om bykomende JavaScript-skrifte aan die kliëntkant af te laai en te gebruik. Onder die nadele van die metode is daar ook 'n oordrag van 'n deel van die las van die voorkant na die agterkant en 'n toename in die frekwensie van data-uitruiling met die bediener.

Van die voordele is: die uitskakeling van die behoefte aan die deelname van JavaScript-voorkantontwikkelaars, stabiele en kompakte kliëntkode (11kb), ontoeganklikheid van die hoofkode vanaf die voorkant, geen behoefte aan REST-serialisering en gereedskap soos gRPC nie, die uitskakeling van die probleme met die koördinering van versoekroetering tussen die voorkant en agterkant.

Bron: opennet.ru

Voeg 'n opmerking