2016-12-01 2 views
1

Ich bin neu in JQuery, und bisher habe ich es in Nebenprojekten verwendet, um visuelle Animationen auf der Benutzeroberfläche hinzuzufügen. Da ich immer Thymeleaf auf der Benutzeroberfläche beim Schreiben einer Spring Boot-Anwendung verwendet habe, war ich zufrieden, die beiden zu kombinieren. Die Daten von der Benutzerseite gehen durch das Modell über Thymeleaf, das vom Server verarbeitet wird, und dann injiziert es die Ergebnisse in verschiedenen Objekten zurück zur UI (über das Model wieder).Spring Boot - Thymeleaf vs JQuery?

Aber jetzt fing ich an, den Prozess zu vereinfachen, indem ich JQuery ajax Queries nutze, die den Vorteil haben, die Seitenaktualisierung loszuwerden, und ich muss auch nicht das Modell verwenden, um die Objekte in jede einzelne Seite zu injizieren. (Bei Thymeleaf, selbst wenn ein Benutzer nicht etwas auf der Seite zu ändern entscheidet - wie eine Form - ein Objekt muss noch da sein - für alle Fälle - die ihre Änderungen gespeichert werden.)

Die Frage ist: Ist das eine gute Strategie, um das Thymeleaf loszuwerden und reines HTML + JQuery zu verwenden, um alle Request + Response Arbeit auf der Benutzerschnittstelle zu machen? Ich frage mich , wenn es irgendwelche Nachteile davon gibt, da es viele Leute gibt, die thymeleaf verwenden, um diese Sachen ohne JS zu behandeln, und vielleicht haben sie einen guten Grund, so zu tun.

+0

Sie können Fragmente auf der Website aktualisieren, damit Sie verhindern, dass die gesamte Seite neu geladen wird. Ich denke, das folgende ist, was Sie suchen: http://xpadro.blogspot.de/2014/02/thymeleaf-integration-with-spring-part-2.html –

+0

Vielen Dank Manu, aber in diesem Beispiel verwenden sie auch JQuery zum Auslösen der Aktualisierung, Mischen mit dem Modell. Meine Frage ist eher, wenn es eine gute Strategie ist, JQuery zu verwenden und Thymeleaf/Models zu eliminieren. –

+1

Richtig wird nicht Javascript und HTML verwirren. Wenn Sie diesen Ansatz verwenden, haben Sie keine Probleme mit einer Template-Engine und einem js-Framework. – degr

Antwort

3

So, nachdem alles, was ich denke, ich habe eine Antwort auf die Frage gefunden, indem wir einige wichtige Aspekte nur unter Berücksichtigung mag:

-Code Reusability

Ein großer Vorteil, einen Rahmen zu verwenden wie Thymeleaf ist dass Sie den Code, den Sie geschrieben haben, einfach wiederverwenden können - im Falle von TL - indem Sie Fragmente verwenden. Das Erstellen des Front-Ends in reinem HTML + JQuery bedeutet, dass jede einzelne Seite eine separate .html-Datei haben muss, außer wenn wir eine einzelne Seitenanwendung erstellen. In diesem Fall wäre die Verwendung von Angular jedoch viel effizienter.

Sicherheit

Ein weiterer Aspekt, den ich nicht berücksichtigt habe; Thymeleaf ist kompatibel mit Spring Security, hat aber auch eine spezifische Syntax, die dem Benutzer zur Laufzeit verborgen bleibt. Wenn ein Server ein REST-Server ist (wie es in einigen Fällen beim Spring-Boot der Fall ist), muss zusätzliche Sicherheit implementiert werden, womit Thymeleaf helfen kann. (Zusätzliche Sicherheit wird meist sowieso benötigt)

Also ist wahrscheinlich die beste Lösung, bei Thymeleaf zu bleiben, mit JQuery als Unterstützung für die Schnittstelle (genauso wie die Daten bei der Verwendung von Ajax Caching, die Thymeleaf nicht so gut ist, und auch die visuellen Glocken und Pfeifen) und lassen Sie sie zusammenarbeiten.

Verwandte Themen