模板引擎是什么? thymeleaf 和 js/css/html 是什么关系?

2019-01-03 21:57:20 +08:00
 gransh
java 后端,最近在学习 springboot,看到到处推荐 thymeleaf 模板引擎就看了下。谈到用法也就是 pom 引入依赖然后直接写页面,说实话没理解这个所谓的模板引擎是在哪起作用的。。。。
对前端的了解有限,我所知道的 js/css/html 三件套,js 负责逻辑,css 负责样式,html 负责布局,那 thymeleaf 替代的是哪一部分,或者能明确描述下跟这三者的关系?以前用 jsp 就是一个 servlet 的作用,thymeleaf 跟 jsp 的区别又在哪?

另外附加一个前端的问题,我看很多前端框架都是用网址引入,例如 href="https://cdn.bootcss.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css",这样子不会影响加载速度吗?如果网站是内网使用,就不能这么用框架吧?
5665 次点击
所在节点    Java
4 条回复
Sparetire
2019-01-03 23:27:58 +08:00
html 页面就是个字符串,模板引擎就是给了你模板引擎自定义的语法,用来对这个字符串进行变量 /表达式的替换最后还是得到 html 的字符串
前端模板就是这个替换操作在浏览器用 js 执行,比如 react,vue,不过它们不仅仅是模板。后端模板就是替换操作在后端执行
前端替换叫前端渲染,后端替换叫后端渲染,你也可以后端渲染完生成 html 给前端,前端拿到这个 html 再做一次替换
html,css,js 都是浏览器的事,所以后端模板引擎和这三者都不存在替代关系
jsp 也算是模板引擎,和 thymeleaf 就是语法 /性能 /其他功能强弱有无的区别,反正模板引擎做的事基本上都是输入模板+变量,输出 html 字符串,有些加个缓存
通过 cdn 引入 js,css 绝大部分时候不会导致加载变慢,浏览器会并行下载它们
ModerRAS
2019-01-04 00:02:56 +08:00
模板语言通过指定的语法填充数据,然后执行部分是模板引擎。相当于后端获取到要填充的数据之后按照指定格式填充到模板语言指定的位置,然后这样子发给前端去渲染。内网使用的话你就把那个资源下载到本地然后挂 Nginx 上就好。加载速度感觉靠浏览器内核了,好像现在火狐还是先加载 html 渲染着加载其他的(我自己开 GitHub 直连容易只有 html 没有 CSS,然后过一会就出来了的情况),所以没加载完会不好看,chrome 总感觉是一口气出来的所以会慢吧,不过静态资源只要网络带宽够一般不会慢的。
gransh
2019-01-04 10:29:13 +08:00
谢楼上,解释的很清楚
charten
2019-01-04 19:04:49 +08:00
回答前端的问题,如果网站是内网使用的,建议放内网服务器上,速度比使用 cdn 会更快一点。用外链 cdn 的话,要做好第三方 cdn 坏链的心理准备。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/523635

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX