Ich baue eine Website mit Nodejs und Express. Wie können Unterteilungen in einer Seite dynamisch gemacht werden? Wird Jade dafür benutzt? wenn nicht wie es geht, wofür wird angularjs verwendet? Bitte helfen Sie, ich suchte viel auf Google und ich konnte keine Klarheit in der Verwendung von ihnen bekommen.Tatsächliche Verwendung von Jade Vorlage und angularjs
Antwort
Jade erstellt den im Browser verwendeten HTML-Code serverseitig. Der Browser führt eine Anfrage an den Webserver aus, der Web-Server führt Jade aus, wodurch der HTML-Code erzeugt wird, der an den Browser gesendet wird. Diese serverseitige Inhaltsgeneration ist in den letzten ~ 20 Jahren sehr verbreitet gewesen, aber sie hat einige Nachteile beim Erstellen von Rich-Internet-Anwendungen. Meistens hat dies etwas mit Performance- und Client-Status-Tracking zu tun.
AngularJS ist eine clientseitige MVC/MVVM wie Rahmen, so genannt zu bauen Single Page Applications (SPA), die Sie Tracking die komplette Benutzeroberfläche fließen, alle Content-Generierung und Staat haben können auf die getan werden Client-Seite. Sie können sogar Offline-Anwendungen erstellen. Aus Sicht des Entwicklers fühlt sich das eher an, als würde man eine Desktop-Anwendung erstellen, bei der der Client den Status der Benutzerschnittstelle kennt. Vom Benutzerpunkt der Ansicht wird die Website viel reibungsloser und schneller reagieren, da die Benutzeroberfläche alle lokal generiert wird.
Hinweis: SPA tut nicht bedeutet, dass Sie nur eine Seite in Ihrer Website haben können. Dies ist ein technischer Begriff, bei dem der Browser eine Seite (~/index.html) herunterlädt, die die vollständige oder teilweise Webanwendung enthält. Der Benutzer verlässt diese Seite technisch nie, aber der Inhalt (die Seiten) wird dynamisch von dieser Platzhalterseite aus- und eingetauscht.
Um die meisten Daten zu einem SPA zu liefern ist über RESTful Web-Services. AngularJS kommt mit builtin support für REST.
Einige Entwickler kombinieren serverseitige Content-Generation-Techniken mit AngularJS, aber dafür gibt es eigentlich keinen Grund.
Neugierig, warum Sie sagen "Einige Entwickler kombinieren serverseitige Content-Generation-Techniken mit AngularJS, aber es gibt eigentlich keinen wirklichen Bedarf dafür". Ein Grund, an den ich sofort denken kann, ist SEO. Ich weiß, dass Google plant, js Seiten zu crawlen, aber ich bin ziemlich sicher, dass andere Suchmaschinen solche Funktionalität nicht implementiert haben. Ein weiterer wichtiger Grund ist die Geschwindigkeit und die vom Benutzer wahrgenommene Geschwindigkeit. Es sollte von äußerster Wichtigkeit sein, etwas sofort auf den Bildschirm zu bringen. – TYRONEMICHAEL
@TyroneMichael Es ist nicht so schwarz und weiß; Angular hilft nicht viel mit einer XML-Sitemap und AFAIK gibt es keinen Crawler, der SPA's verarbeitet, ohne sie zu liefern [einige vorgerenderte HTML] (http://www.yearofmoo.com/2012/11/angularjs- und-seo.html). In einigen Fällen ist es vielleicht schneller, dem Client eine vorbereitete Ansicht zu liefern, aber im Allgemeinen fügt dies der Pipeline nur unnötige Komplikationen hinzu. Angular ist am besten, wenn Sie optimierte Vorlagen zwischenspeichern und die (JSON-) Daten von einer REST-API einspeisen. – null
Ja, ich stimme dir zu 100% zu. Es kann die Dinge definitiv komplizieren. Wenn Sie jedoch Jade mit Angular verwenden können, können Sie den Client vorgerenderten HTML-Code mit Node bedienen und Ihre Vorlagen mit eckigen wiederverwenden. Das hat mich zunächst hierher gebracht. Daher können Server und Client Vorlagen wiederverwenden, was die Dinge erheblich vereinfacht. – TYRONEMICHAEL
Jade wird sowohl auf der Serverseite als auch auf der Clientseite als Vorlage verwendet. Ja, es kann eine Seite dynamisch aktualisieren, Sie müssen nur Ihre Jade-Vorlagen zu einer Javascript-Funktion kompilieren (mit jade -c
oder etwas Ähnliches).
Ja, Sie können angular.js verwenden, aber ich sehe keine Notwendigkeit, zwei Vorlagen-Engines in Ihrem Projekt zu verwenden. Schlage vor, einfach bei Jade zu bleiben, außer du weißt, was du tust.
Ich benutze Jade, um angular.js Partials zu erstellen. Ich brauche es nur weil html hässlich und ausführlich ist. –
Das eckige Tutorial ist wahrscheinlich ein besserer Einstieg, da Sie wahrscheinlich genauer sein müssen, um hier eine Antwort zu erhalten. http://docs.angularjs.org/tutorial – ivarni