Pusa վեբ շրջանակը, որը JavaScript-ի ճակատային տրամաբանությունը փոխանցում է սերվերի կողմ

Pusa վեբ շրջանակը հրապարակվել է հայեցակարգի ներդրմամբ, որը փոխանցում է բրաուզերի մեջ JavaScript-ի միջոցով գործարկված ճակատային տրամաբանությունը դեպի հետևի կողմ՝ բրաուզերի և DOM տարրերի կառավարումը, ինչպես նաև բիզնես տրամաբանությունը կատարվում է: հետևի վերջը. Բրաուզերի կողմից կատարված JavaScript կոդը փոխարինվում է ունիվերսալ շերտով, որը կանչում է հետին մասում տեղակայված մշակողներին: Առջևի համար JavaScript-ի միջոցով զարգանալու կարիք չկա: Pusa հղումների իրականացումը գրված է PHP-ով և լիցենզավորված է GPLv3-ով: Բացի PHP-ից, տեխնոլոգիան կարող է ներդրվել ցանկացած այլ լեզվով, ներառյալ JavaScript/Node.js, Java, Python, Go և Ruby:

Pusa-ն սահմանում է փոխանակման արձանագրություն՝ հիմնված մինիմալիստական ​​հրամանների վրա: Երբ էջը բեռնվում է, զննարկիչը բեռնում է DOM-ի հիմքում ընկած բովանդակությունը և Pusa-Front-ի JavaScript միջուկը: Pusa-Front-ն ուղարկում է դիտարկիչի իրադարձություններ (օրինակ՝ սեղմում, պղտորում, ֆոկուս և ստեղնաշարի սեղմում) և հարցումների պարամետրեր (իրադարձության պատճառած տարրը, դրա ատրիբուտները, URL-ը և այլն) Pusa-Back սերվերի մշակողին՝ օգտագործելով Ajax հարցումները: Ստացված տվյալների հիման վրա Pusa-Back-ը որոշում է վերահսկիչին, կատարում է ծանրաբեռնվածությունը և առաջացնում է պատասխան հրամանների հավաքածու: Ստանալով հարցման պատասխանը՝ Pusa-Front-ը կատարում է հրամաններ՝ փոխելով DOM-ի բովանդակությունը և բրաուզերի միջավայրը:

Frontend-ի վիճակը ստեղծվում է, բայց չի վերահսկվում backend-ի կողմից, ինչը Pusa-ի համար մշակումը նմանեցնում է վիդեո քարտի կամ կտավի կոդին, որտեղ կատարման արդյունքը չի վերահսկվում մշակողի կողմից: Canvas-ի և onmousemove-ի վրա հիմնված ինտերակտիվ հավելվածներ ստեղծելու համար հնարավոր է հաճախորդի կողմից ներբեռնել և օգտագործել լրացուցիչ JavaScript սկրիպտներ: Մեթոդի թերությունների թվում կա նաև բեռի մի մասի փոխանցում ճակատից դեպի հետնամաս և սերվերի հետ տվյալների փոխանակման հաճախականության ավելացում։

Առավելություններից են՝ վերացնելով JavaScript-ի front-end ծրագրավորողների մասնակցության անհրաժեշտությունը, կայուն և կոմպակտ հաճախորդի կոդը (11kb), հիմնական կոդի անհասանելիությունը ճակատից, REST սերիալացման և gRPC-ի նման գործիքների կարիք չկա, վերացնելով Առջևի և հետին մասի միջև հարցումների երթուղիների համակարգման խնդիրներ:

Source: opennet.ru

Добавить комментарий