0

Hallo Ich entwickle ein Widget-Modul in meinem vorhandenen Angular 1-basierten UI-Projekt. Dieses Widget soll Echtzeitinformationen enthalten.NodeJs HTML-Vorlage + Logik auf Serverseite rendern

Laut meinem Entwurf, ich möchte HTML-Ansicht an Client von Node-Server senden (vielleicht mit Express-Js), wenn die erste Anfrage gestellt wird. Aber da die Daten in Echtzeit sein müssen, kann ich es mir nicht leisten, den kompletten HTML-Code jede Minute zu senden (es wird jedes Mal eine doppelte Vorlage übertragen).

So ist es möglich, dass ich eine Vorlage zum Client zusammen mit einer Reihe von Java-Skript-Funktionen senden, so dass wann immer Client diese Daten aktualisiert werden soll, wird er nur die gesendete JavaScript-Funktion aufrufen und intern wird meine JavaScript-Funktion Machen Sie einen Pausen-Anruf, holen Sie sich die JSON-Antwort vom Server und füllen Sie erneut das ursprünglich gesendete HTML auf.

Auf diese Weise plane ich das erste Rendering auf der Serverseite und das anschließende Rendern auf dem Client unter Verwendung der vom Server bereitgestellten Logik. Hier wird dem Client nicht bewusst sein, welches Widget es rendert und welche Funktionalitäten es hat. All diese werden von js gesteuert, die vom Server gesendet werden.

Bitte lassen Sie mich wissen, wie dies zu erreichen ist, da ich ejs nicht zu diesem Zweck dienen. Bei ejs muss ich die gesamte Logik nur auf der Serverseite haben. Während ich vorhabe, Logik zur Laufzeit von Server zu Client zu übertragen.

Auch wenn mein Design einige ernste Probleme hat, schlagen Sie einige andere Alternativen vor. Danke

Antwort

0

Angular1 ist nicht server side rendering freundlich wie es Browser DOM benötigt. Die Verwendung von Templating-Engines würde nicht helfen, da der von ihnen generierte HTML-Code nicht von der eckigen App übernommen wird.

Verwenden Sie eine phantomjs Headless-Browser-Instanz, um HTML zu generieren, indem Sie Ihren angular1-App-Code ausführen, und dann wird angular auf der Client-Seite ausgeführt, wenn Skripts geladen wurden.

würde ich empfehlen, zu Angular2 oder React Schalt wie sie server side rendering freundlich

sind