2016-12-01 191 views
1

我是JQuery的新手,到目前爲止我用它在側面項目中添加視覺動畫到用戶界面。因爲在編寫Spring Boot應用程序時,我總是在UI上使用Thymeleaf,所以我很滿意將它們中的兩個結合起來。來自用戶端的數據通過由服務器處理的Thymeleaf經過模型,然後它將不同對象中的結果注入UI(再次通過模型)。春季啓動 - Thymeleaf與JQuery?

但是現在我開始通過使用JQuery ajax查詢來簡化這個過程,這有利於擺脫頁面刷新,並且我不必使用模型將對象注入每個頁面。 (在Thymeleaf的情況下,即使用戶決定不改變的東西在頁面上 - 就像一個形式 - 一個對象仍然需要有 - 以防萬一 - 這將存儲他們的變化。)

問題是:這是一個很好的戰略,擺脫Thymeleaf和使用純HTML + JQuery做所有的請求+響應在用戶界面工作?我想知道是否有任何缺點,因爲有很多人使用thymeleaf來處理這些沒有JS的東西,也許他們有一個很好的理由這樣做。

+0

您可以刷新網站上的碎片,這樣可以防止整個頁面重新加載。我認爲以下是你要找的:http://xpadro.blogspot.de/2014/02/thymeleaf-integration-with-spring-part-2.html –

+0

謝謝你Manu,但在那個例子中他們也在使用JQuery觸發刷新,將其與模型混合。我的問題更像是,如果使用JQuery並消除Thymeleaf/Models是一個好策略。 –

+1

正確地將不會混亂的JavaScript和HTML。如果你將使用這種方法,你將不會遇到任何模板引擎和任何js框架的問題。 – degr

回答

3

所以,畢竟,我想我已經找到了問題的答案,考慮了一些重要的方面就是喜歡:

代碼重用

使用框架喜歡Thymeleaf是一個很大的好處您可以通過使用片段輕鬆地重用您編寫的代碼(在TL的情況下)。在純HTML + JQuery中創建前端意味着每個頁面都需要單獨的.html,除非我們構建單個頁面應用程序,但在這種情況下,使用Angular會更有效。

安全

我沒有另一個需要考慮的方面; Thymeleaf與Spring Security兼容,它具有在運行時對用戶隱藏的特定語法。如果服務器是REST服務器(因爲在使用Spring引導時有幾種情況),需要實施額外的安全性,Thymeleaf可以提供哪些幫助。 (無論如何都需要額外的安全性)

所以最好的解決方案可能是使用Thymeleaf,使用JQuery作爲接口的支持(就像使用ajax時緩存數據一樣,Thymeleaf並不擅長,也做視覺上的鐘聲和哨聲)並讓他們一起工作。