إطار عمل الويب Pusa الذي ينقل منطق الواجهة الأمامية لـ JavaScript إلى جانب الخادم

تم نشر إطار عمل الويب Pusa مع تنفيذ مفهوم ينقل منطق الواجهة الأمامية، الذي يتم تنفيذه في المتصفح باستخدام JavaScript، إلى الجانب الخلفي - حيث يتم تنفيذ إدارة المتصفح وعناصر DOM، بالإضافة إلى منطق الأعمال على النهاية الخلفية. يتم استبدال كود JavaScript الذي يتم تنفيذه على جانب المتصفح بطبقة عالمية تستدعي المعالجات الموجودة على الجانب الخلفي. ليست هناك حاجة للتطوير باستخدام JavaScript للواجهة الأمامية. التنفيذ المرجعي لـ Pusa مكتوب بلغة PHP ومرخص بموجب GPLv3. بالإضافة إلى PHP، يمكن تنفيذ التكنولوجيا بأي لغة أخرى، بما في ذلك JavaScript/Node.js وJava وPython وGo وRuby.

يحدد Pusa بروتوكول تبادل يعتمد على مجموعة بسيطة من الأوامر. عند تحميل الصفحة، يقوم المتصفح بتحميل محتوى DOM الأساسي ونواة JavaScript الخاصة بـ Pusa-Front. يرسل Pusa-Front أحداث المتصفح (مثل النقر والتمويه والتركيز والضغط على المفاتيح) ومعلمات الطلب (العنصر الذي تسبب في الحدث وسماته وعنوان URL وما إلى ذلك) إلى معالج خادم Pusa-Back باستخدام طلبات Ajax. بناءً على البيانات المستلمة، يحدد Pusa-Back وحدة التحكم، وينفذ الحمولة ويولد مجموعة استجابة من الأوامر. بعد تلقي استجابة الطلب، تقوم Pusa-Front بتنفيذ الأوامر وتغيير محتويات DOM وبيئة المتصفح.

يتم إنشاء حالة الواجهة الأمامية ولكن لا يتم التحكم فيها بواسطة الواجهة الخلفية، مما يجعل التطوير لـ Pusa مشابهًا لكود بطاقة الفيديو أو Canvas، حيث لا يتحكم المطور في نتيجة التنفيذ. لإنشاء تطبيقات تفاعلية تعتمد على Canvas وonmousemove، من الممكن تنزيل واستخدام نصوص JavaScript إضافية من جانب العميل. من بين عيوب الطريقة أيضًا نقل جزء من الحمل من الواجهة الأمامية إلى الواجهة الخلفية وزيادة وتيرة تبادل البيانات مع الخادم.

من بين المزايا: إلغاء الحاجة إلى مشاركة مطوري الواجهة الأمامية لـ JavaScript، ورمز العميل المستقر والمضغوط (11 كيلو بايت)، وعدم إمكانية الوصول إلى الكود الرئيسي من الواجهة الأمامية، وعدم الحاجة إلى تسلسل REST وأدوات مثل gRPC، والقضاء على مشاكل تنسيق توجيه الطلب بين الواجهة الأمامية والخلفية.

المصدر: opennet.ru

إضافة تعليق