JavaScript-ning oldingi mantiqini server tomoniga o'tkazadigan Pusa veb-ramka

Pusa veb-ramka JavaScript-dan foydalangan holda brauzerda bajarilgan front-end mantiqini orqa tomonga o'tkazadigan kontseptsiyani amalga oshirish bilan nashr etildi - brauzer va DOM elementlarini boshqarish, shuningdek, biznes mantig'i orqa tomon. Brauzer tomonida bajarilgan JavaScript kodi orqa tomonda joylashgan ishlov beruvchilarni chaqiruvchi universal qatlam bilan almashtiriladi. Frontend uchun JavaScript yordamida ishlab chiqishning hojati yo'q. Pusa havolasi ilovasi PHP da yozilgan va GPLv3 ostida litsenziyalangan. PHP dan tashqari texnologiya har qanday boshqa tilda, jumladan JavaScript/Node.js, Java, Python, Go va Ruby tillarida ham amalga oshirilishi mumkin.

Pusa minimalistik buyruqlar to'plamiga asoslangan almashinuv protokolini belgilaydi. Sahifani yuklaganda, brauzer asosiy DOM tarkibini va Pusa-Frontning JavaScript yadrosini yuklaydi. Pusa-Front Ajax so'rovlari yordamida Pusa-Back server ishlovchisiga brauzer hodisalarini (klik, xiralashtirish, fokus va tugmani bosish kabi) va so'rov parametrlarini (hodisaga sabab bo'lgan element, uning atributlari, URL va boshqalar) yuboradi. Qabul qilingan ma'lumotlarga asoslanib, Pusa-Back boshqaruvchini aniqlaydi, foydali yukni bajaradi va javoblar to'plamini yaratadi. So'rovga javob olgandan so'ng, Pusa-Front DOM tarkibini va brauzer muhitini o'zgartirib, buyruqlarni bajaradi.

Frontend holati yaratiladi, lekin backend tomonidan boshqarilmaydi, bu Pusa uchun ishlanmani video karta yoki Canvas uchun kodga o'xshash qiladi, bunda bajarish natijasi ishlab chiquvchi tomonidan boshqarilmaydi. Canvas va onmousemove asosida interaktiv ilovalar yaratish uchun mijoz tomonidan qo'shimcha JavaScript skriptlarini yuklab olish va ulardan foydalanish mumkin. Usulning kamchiliklari orasida yukning bir qismini frontenddan backendga o'tkazish va server bilan ma'lumot almashish chastotasining oshishi ham mavjud.

Afzalliklar qatoriga quyidagilar kiradi: JavaScript-ning front-end ishlab chiquvchilari ishtirokiga bo'lgan ehtiyojni bartaraf etish, barqaror va ixcham mijoz kodi (11kb), asosiy kodga front-enddan kirish imkoni yo'qligi, REST serializatsiyasi va gRPC kabi vositalarga ehtiyoj yo'q, front-end va backend o'rtasida so'rov marshrutini muvofiqlashtirish muammolari.

Manba: opennet.ru

a Izoh qo'shish