Pusa-Webframework, das die Logik des JavaScript-Frontends auf die Serverseite verlagert

Das Pusa-Webframework wurde mit der Implementierung des Konzepts veröffentlicht, das die im Browser ausgeführte Front-End-Logik mithilfe von JavaScript auf die Back-End-Seite überträgt – die Browser- und DOM-Elementverwaltung sowie die Geschäftslogik werden auf der Back-End-Seite ausgeführt. Ende. Der auf der Browserseite ausgeführte JavaScript-Code wird durch eine universelle Ebene ersetzt, die Handler auf der Backend-Seite aufruft. Für das Frontend ist keine Entwicklung mit JavaScript erforderlich. Die Pusa-Referenzimplementierung ist in PHP geschrieben und wird unter der GPLv3-Lizenz vertrieben. Neben PHP kann die Technologie in jeder anderen Sprache implementiert werden, einschließlich JavaScript/Node.js, Java, Python, Go und Ruby.

Pusa definiert ein Austauschprotokoll, das auf einem minimalistischen Befehlssatz basiert. Wenn die Seite geladen wird, lädt der Browser den zugrunde liegenden DOM-Inhalt und den Pusa-Front-JavaScript-Kern. Pusa-Front sendet Browserereignisse (wie Klick, Unschärfe, Fokus und Tastendruck) und Anforderungsparameter (das Element, das das Ereignis ausgelöst hat, seine Attribute, URL usw.) über Ajax-Anfragen an den Pusa-Back-Server-Handler. Basierend auf den empfangenen Daten bestimmt Pusa-Back den Controller, führt die Nutzlast aus und generiert einen Antwortsatz von Befehlen. Beim Empfang einer Antwort auf eine Anfrage führt Pusa-Front Befehle aus und verändert den Inhalt des DOM und der Browserumgebung.

Der Zustand des Frontends wird vom Backend generiert, aber nicht kontrolliert, wodurch die Entwicklung für Pusa dem Code für eine Grafikkarte oder Canvas ähnelt, bei dem das Ergebnis der Ausführung nicht vom Entwickler kontrolliert wird. Um interaktive Anwendungen auf Basis von Canvas und onmousemove zu erstellen, können Sie auf der Clientseite zusätzliche JavaScript-Skripte herunterladen und verwenden. Zu den Mängeln der Methode zählen auch die Verlagerung eines Teils der Last vom Frontend auf das Backend und eine Erhöhung der Häufigkeit des Datenaustauschs mit dem Server.

Zu den Vorteilen zählen: Wegfall der Notwendigkeit der Beteiligung von Front-End-JavaScript-Entwicklern, stabiler und kompakter Client-Code (11 KB), Unzugänglichkeit des Hauptcodes von der Front-End-Seite, keine Notwendigkeit für REST-Serialisierung und gRPC-Typ Tools, Beseitigung von Problemen bei der Koordinierung des Anforderungsroutings zwischen Front-End und Back-End.

Source: opennet.ru

Kommentar hinzufügen