Mfumo wa wavuti wa Pusa umechapishwa. Inatumia dhana inayosogeza mantiki ya mandhari ya mbele, inayotekelezwa kwenye kivinjari kwa kutumia JavaScript, hadi nyuma. Usimamizi wa vipengee vya kivinjari na DOM, pamoja na mantiki ya biashara, hutekelezwa kwenye sehemu ya nyuma. Nambari ya msimbo ya JavaScript iliyotekelezwa kwenye upande wa kivinjari inabadilishwa na programu ya kati inayoita vishikilizi vilivyo kwenye sehemu ya nyuma. Hakuna haja ya kukuza kutumia JavaScript kwa sehemu ya mbele. Utekelezaji wa marejeleo ya Pusa umeandikwa katika PHP na unasambazwa chini ya leseni ya GPLv3. Kando na PHP, teknolojia inaweza kutekelezwa katika lugha nyingine yoyote, ikiwa ni pamoja na JavaScript/Node.js, Java, Python, Go, na Ruby.
Pusa inafafanua itifaki ya kubadilishana kulingana na seti ndogo ya amri. Wakati ukurasa unapopakia, kivinjari hupakia maudhui ya msingi ya DOM na msingi wa JavaScript wa Pusa-Front. Pusa-Front hutuma matukio ya kivinjari (kama vile kubofya, kutia ukungu, kulenga, na kubonyeza kitufe) na kuomba vigezo (kipengele kilichoanzisha tukio, sifa zake, URL, n.k.) kwa kidhibiti cha seva ya Pusa-Back kupitia maombi ya Ajax. Kulingana na data iliyopokelewa, Pusa-Back huamua kidhibiti, kutekeleza upakiaji, na kutoa seti ya majibu ya amri. Baada ya kupokea jibu la ombi, Pusa-Front hutekeleza amri, kurekebisha maudhui ya DOM na mazingira ya kivinjari.
Hali ya sehemu ya mbele huzalishwa lakini haidhibitiwi na sehemu ya nyuma, na kufanya uundaji wa Pusa kuwa sawa na msimbo wa kadi ya video au Canvas, ambapo matokeo ya utekelezaji hayadhibitiwi na msanidi programu. Ili kuunda programu shirikishi kulingana na Canvas na onmousemove, inawezekana kupakia na kutumia hati za ziada za JavaScript kwa upande wa mteja. Hasara za njia hii pia ni pamoja na kuhamisha baadhi ya mzigo kutoka sehemu ya mbele hadi sehemu ya nyuma na kuongeza masafa ya ubadilishanaji wa data. seva.
Faida ni pamoja na: kuondoa hitaji la watengenezaji wa JavaScript wa mbele, msimbo thabiti na thabiti wa mteja (KB 11), kutoweza kufikiwa kwa msimbo mkuu kutoka sehemu ya mbele, hakuna haja ya usanifu wa REST au zana za aina ya gRPC, na kuondoa matatizo ya kuratibu uelekezaji wa ombi kati ya mwisho wa mbele na nyuma.
Chanzo: opennet.ru
