Pusa web framework yomwe imasamutsa JavaScript kutsogolo kutsogolo kumbali ya seva

Mawonekedwe a intaneti a Pusa adasindikizidwa ndikukhazikitsa lingaliro lomwe limasamutsa malingaliro akutsogolo, omwe amachitidwa mumsakatuli pogwiritsa ntchito JavaScript, kupita kumbuyo - kuwongolera osatsegula ndi zinthu za DOM, komanso malingaliro abizinesi amachitidwa pa. kumbuyo-mapeto. Khodi ya JavaScript yomwe ili pambali ya msakatuli imasinthidwa ndi chosanjikiza chapadziko lonse chomwe chimayitanira ma handlers omwe ali kumbali yakumbuyo. Palibe chifukwa chopangira JavaScript kutsogolo. Kukhazikitsa kwa Pusa kumalembedwa mu PHP ndipo kuli ndi chilolezo pansi pa GPLv3. Kuphatikiza pa PHP, lusoli likhoza kugwiritsidwa ntchito m'chinenero china chilichonse, kuphatikizapo JavaScript/Node.js, Java, Python, Go ndi Ruby.

Pusa imatanthauzira ndondomeko yosinthira kutengera malamulo ochepa. Tsamba likadzaza, msakatuli amanyamula zomwe zili mu DOM ndi Pusa-Front's JavaScript core. Pusa-Front imatumiza zochitika za msakatuli (monga kudina, kusokoneza, kuyang'ana ndi keypress) ndikupempha magawo (chinthu chomwe chinayambitsa chochitikacho, zizindikiro zake, URL, ndi zina zotero) kwa Pusa-Back seva chogwiritsira ntchito pogwiritsa ntchito zopempha za Ajax. Kutengera zomwe zalandilidwa, Pusa-Back imasankha wowongolera, amalipira malipirowo ndikupanga malamulo angapo oyankha. Atalandira yankho la pempho, Pusa-Front imapanga malamulo, kusintha zomwe zili mu DOM ndi malo osatsegula.

Chikhalidwe cha kutsogolo chimapangidwa koma sichimayendetsedwa ndi backend, zomwe zimapanga chitukuko cha Pusa mofanana ndi kachidindo ka khadi la kanema kapena Canvas, kumene zotsatira za kuphedwa sizikuyendetsedwa ndi wopanga. Kuti mupange mapulogalamu ogwiritsira ntchito potengera Canvas ndi onmousemove, ndizotheka kutsitsa ndikugwiritsa ntchito zolemba zina za JavaScript kumbali ya kasitomala. Pakati pa zovuta za njirayi, palinso kusamutsidwa kwa gawo la katundu kuchokera kutsogolo kupita ku backend ndi kuwonjezeka kwafupipafupi kusinthanitsa deta ndi seva.

Zina mwazabwino ndi izi: kuchotsa kufunikira kwa kutenga nawo gawo kwa opanga mapulogalamu akutsogolo a JavaScript, khodi yokhazikika komanso yophatikizika yamakasitomala (11kb), kusapezeka kwa kachidindo yayikulu kuchokera kumapeto, kusafunikira kwa REST ndi zida monga gRPC, kuchotsa zovuta zogwirizanitsa zopempha pakati pa kutsogolo ndi kumbuyo.

Source: opennet.ru

Kuwonjezera ndemanga