Mehr Perfomance: Mit Phoenix LiveView Echtzeit-Webapplikationen entwickeln

Mit Phoenix LiveView gelingt die Entwicklung performanter, hochskalierbarer Echtzeitanwendungen für den Browser ohne clientseitige JavaScript-Frameworks.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Lesezeit: 13 Min.
Von
  • Stefan Wintermeyer
Inhaltsverzeichnis

Viele moderne Webseiten benötigen Echtzeiteigenschaften, weil sie live sich ständig ändernde Daten vom Server anzeigen. Eine Chatapplikation ist dafür ein klassisches Beispiel: Der Benutzer gibt etwas in einem Eingabefeld ein, klickt auf einen Button und sofort wird diese Eingabe auf seiner eigenen und auf den Webseiten der anderen Chatteilnehmer angezeigt.

Mehr zu Webentwicklung

Webserver und Browser kommunizieren dabei meist über WebSockets oder, falls der Server nicht aktiv Daten pushen muss, auch klassisch per HTTP GET vom Browser getriggert. Die Webseite enthält JavaScript-Code, der diese Daten dann verarbeitet und Inhalte auf der Webseite austauscht. Teilweise wird dabei der komplette HTML-Code als Kopie in einem Shadow-DOM vorgehalten und dort mit hohem Ressourcenaufwand bearbeitet. Der Transport der Daten erfolgt üblicherweise im JSON-Format. Im besten Fall fühlt sich damit die Webseite fast wie eine native Applikation an.

Da Entwickler nicht ständig das Rad neu erfinden können oder sollten, verwenden die meisten Webseiten etablierte JavaScript-Frameworks wie React oder Vue.js. Auf der Serverseite werden ebenfalls fertige Frameworks eingesetzt, allerdings andere und oft in anderen Programmiersprachen als JavaScript. Dieser Mix von Frameworks im Front- und Backend erhöht den Entwicklungs- und Wartungsaufwand. Zudem sind die JavaScript-Programme auf den Clients selten wirklich performant, denn JavaScript ist bekannterweise eine eher langsame Programmiersprache.

Das war die Leseprobe unseres heise-Plus-Artikels "Mehr Perfomance: Mit Phoenix LiveView Echtzeit-Webapplikationen entwickeln". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.