Ich entwickle eine Web-App und habe derzeit die gesamte Website in html / js / css geschrieben und im Backend habe ich Servlets, die einige RESTFUL-Dienste hosten. Die gesamte Präsentationslogik wird ausgeführt, indem JSON-Objekte abgerufen und die Ansicht mit Javascript geändert werden.
Die Anwendung ist im Wesentlichen eine Suchmaschine, verfügt jedoch über Benutzerkonten mit unterschiedlichen Rollen.
Ich habe einige Frameworks wie Play und Spring recherchiert. Ich bin ziemlich neu in der Webentwicklung, also habe ich mich gefragt, welche Vorteile die Verwendung des serverseitigen Seiten-Renderings bieten würde.
Ist es: Geschwindigkeit? Einfachere Entwicklung und Workflow? Zugriff auf bestehende Bibliotheken? Mehr? Alles das oben Genannte?
javascript
web-applications
frameworks
user1303881
quelle
quelle
Antworten:
Serverseitiges HTML-Rendering:
* Wenn die UI-Anforderungen gut zum Framework passen.
Clientseitiges HTML-Rendering:
** Wenn die Benutzeroberfläche weitgehend benutzerdefiniert ist, mit interessanteren Interaktionen. Außerdem finde ich die Codierung im Browser mit interpretiertem Code merklich schneller als das Warten auf Kompilierungen und Serverneustarts.
Sie können auch ein Hybridmodell mit einer leichten Back-End-Implementierung in Betracht ziehen, das ein Front-End- / Back-End-Template-System wie Moustache verwendet .
quelle
serverseitige HTML-Generierung:
clientseitige HTML-Generierung:
Beachten Sie, dass die clientseitige Generierung bei erfolgreichen mobilen Websites so erfolgt, wie sie bei modernen Browsern anscheinend effizienter ist (WebKit-basierte Browser machen etwa 70-80% des mobilen Marktes aus).
LinkedIn hat einen Artikel über die Vorteile des clientseitigen Ansatzes unter Verwendung von dust.js als Beispiel: "JSPs im Staub lassen: LinkedIn auf clientseitige Vorlagen von dust.js verschieben"
quelle
Das hängt von Ihren Anforderungen ab. Wenn Sie eine leistungsstarke Lösung mit geringer Latenz benötigen, die von vielen kleinen Aufgaben abhängt, verwenden Sie möglicherweise eine Struktur, die Ihrer Beschreibung ähnelt. Die gängigsten Lösungen in Java, PHP und C # verwenden dies jedoch nicht standardmäßig.
Die meisten Webanwendungen hängen sehr stark von Datenbanken ab - die meisten davon sind so stark, dass Seiten nicht ohne mindestens einen Aufruf gerendert werden können. Offensichtlich möchten Sie Ihre Datenbank aus mehreren Gründen nicht öffentlich zugänglich machen:
Wenn Sie also eine Datenbank benötigen, verwenden Sie Sprachen wie Java, C #, PHP usw., die sich gut damit spielen lassen. Der einfachste Weg, eine Seite zu generieren, stellt sich wie folgt heraus: JSP und ASP sind jedoch zwei weitere sehr gebräuchliche Sprachen, um die Seite zu erstellen. Die Sprache bietet Konstrukte, die andere Module ansprechen. In PHP befindet sich dies normalerweise auf der Seite oder in einer anderen PHP-Datei, wobei das MVC-Muster verwendet wird. In JSP verwenden Sie Scriptlets oder die JSP-Ausdruckssprache. Mit diesen anderen Modulen können Sie eine Verbindung zur Datenbank herstellen, Logik ausführen und Werte an die Ansichtsebene zurückgeben. Das Endergebnis ist eine generierte HTML-Seite, die auf dem Server gerendert und an den Client gesendet wird.
Befindet sich Ihre Datenbank im selben Netzwerk wie Ihr Seitenrenderer, erhalten Sie auch eine bessere Leistung. Der Client muss nur eine Anforderung ausführen und erhält eine Seite. Möglicherweise müssen Sie 10 bis 15 DB-Anforderungen ausführen, bevor Sie alle Informationen haben, die der Benutzer benötigt. Eine Latenz von Millisekunden in Ihrem Netzwerk würde Sekunden bis Minuten betragen, wenn der Client sie alle ausführen müsste.
Wenn Systeme größer werden, wird die Trennung von Anliegen und Kernkompetenzen entscheidend. HTML ist gut für die Anzeige. Javascript ist gut für dynamische Inhalte. SQL eignet sich hervorragend zum Abfragen einer Datenbank, und andere Sprachen beherrschen die Geschäftslogik. Unsere Aufgabe als Entwickler ist es, alle uns zur Verfügung stehenden Tools zu nutzen, um ein wartbares System aufzubauen. Einfache Entwicklung ist ein großer Teil eines guten Systems. In meinen Augen ist es fast so wichtig wie Leistung und Benutzerfreundlichkeit. Große Systeme entwickeln sich im Laufe der Zeit. Schlechte Systeme wurden von Anfang an schlecht geschrieben und nie verbessert.
quelle
you can't write SQL in Javascript
Ja wirklich?! Haben Sie jemals sah bei Stackoverflow Fragen für Javascript? Da würde ich leider anders betteln. Zugegeben, es ist das Schlimmste, was Sie im Client-Code tun können, aber ...Mobile Clients sind normalerweise auf Leistung, Bandbreite und Speicher beschränkt. Es ist wahrscheinlich besser, Seiten für sie auf dem Server zu rendern.
Für Desktop-Clients können Sie js + json senden, um die Seite auf dem Client zu rendern, dynamisch zu aktualisieren usw.
quelle
Ein großer Vorteil des serverseitigen Renderns ist die Barrierefreiheit - Javascript-basierte Apps sind immer noch ein großes Problem für Leute ohne Sehvermögen. Das und da gibt es diesen blinden Kerl namens "googlebot", für den Sie sich vielleicht interessieren. Er kann auch nicht so gut Javascript.
quelle