84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
用Java开发写前端页面,传统方式如JSP,模版引擎如Freemarker,Velocity,Thymeleaf,单入口(配合Angular.js,Vue.js等前端框架),只有一个index.html,所有的功能都在这个页面中完成。
业精于勤,荒于嬉;行成于思,毁于随。
單頁應用講究前端渲染,很可能伺服器端回傳的是一個近乎空的html,類似:
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> </head> <body> <p id="view"></p> <script src="http://www.cdn.com/yyy/adsfsafsa234q234.bundle.js" charset="utf-8"></script> </body> </html>
客戶端(瀏覽器)下載這段html可以瞬间完成,然后剩下的事就交给前端的这个adsfsafsa234q234.bundle.js脚本来动态的添加DOM可以瞬間完成,然後剩下的事就交給前端的這個adsfsafsa234q234.bundle.js腳本來動態的加入DOM元素,新增樣式。 。 。 。 。
adsfsafsa234q234.bundle.js
DOM
這裡要注意的是,前端渲染照樣需要模板引擎,如果你看AngularJS的話,他的資料是這樣被綁定的:
AngularJS
<span>{{ pageTitle }}</span> <ul> <li ng-repeat="user in users"> {{ user.name }} </li> </ul>
而你談到的諸如:Freemarker,Velocity,Thymeleaf之類的模板引擎是在後端接收到請求之後,組合數據直接渲染Freemarker,Velocity,Thymeleaf之类的模板引擎是在后端接收到请求之后,组合数据直接渲染html成字串,然後回傳給前端的方式。
Freemarker
Velocity
Thymeleaf
所以二者重點不同
@leftstick 回答的真是太棒了。 。
根據我工作上的經驗,我總結幾點。
單頁應用程式的好處:
只有一個頁面,降低了複雜性;
完全前後端分離,資料交互作用透過ajax進行;
部署方便,只要部署css/html/javascript就行;
把渲染放到了客戶端,可以降低伺服器的壓力;
後端的工作量會減少。
壞處嗎?還沒遇到。 。歡迎 @leftstick 補充
哦。壞處是前端的工作量會加大。 。哈哈。 。
但是要有大局意識啊。前後端整體看來,工作量應該還是減少的。
想到了一個老生常談的壞處:
不利於SEO
但是這種單頁應用程式一般都是做的後台管理,所以根本不需要SEO,如果能被搜尋到,我想大部分人都會禁止掉爬蟲來爬你的後台的。 。
當然,如果是網路型的單頁應用,可能就需要SEO了。貌似也有相應的解決方案。沒深究過。
伺服器端渲染和客戶端渲染的區別。 伺服器端渲染是在伺服器端產生整個頁面傳送到客戶端,而客戶端渲染,則只在第一次拉取整個頁面,以後就是拉取資料本身,大大節約了網路開銷。
單頁應用講究前端渲染,很可能伺服器端回傳的是一個近乎空的
html
,類似:客戶端(瀏覽器)下載這段
html
可以瞬间完成,然后剩下的事就交给前端的这个adsfsafsa234q234.bundle.js
脚本来动态的添加DOM
可以瞬間完成,然後剩下的事就交給前端的這個adsfsafsa234q234.bundle.js
腳本來動態的加入DOM
元素,新增樣式。 。 。 。 。這裡要注意的是,前端渲染照樣需要模板引擎,如果你看
AngularJS
的話,他的資料是這樣被綁定的:而你談到的諸如:
Freemarker
,Velocity
,Thymeleaf
之類的模板引擎是在後端接收到請求之後,組合數據直接渲染Freemarker
,Velocity
,Thymeleaf
之类的模板引擎是在后端接收到请求之后,组合数据直接渲染html
成字串,然後回傳給前端的方式。所以二者重點不同
@leftstick 回答的真是太棒了。 。
根據我工作上的經驗,我總結幾點。
單頁應用程式的好處:
只有一個頁面,降低了複雜性;
完全前後端分離,資料交互作用透過ajax進行;
部署方便,只要部署css/html/javascript就行;
把渲染放到了客戶端,可以降低伺服器的壓力;
後端的工作量會減少。
壞處嗎?還沒遇到。 。歡迎 @leftstick 補充
哦。壞處是前端的工作量會加大。 。哈哈。 。
但是要有大局意識啊。前後端整體看來,工作量應該還是減少的。
想到了一個老生常談的壞處:
不利於SEO
但是這種單頁應用程式一般都是做的後台管理,所以根本不需要SEO,如果能被搜尋到,我想大部分人都會禁止掉爬蟲來爬你的後台的。 。
當然,如果是網路型的單頁應用,可能就需要SEO了。貌似也有相應的解決方案。沒深究過。
伺服器端渲染和客戶端渲染的區別。
伺服器端渲染是在伺服器端產生整個頁面傳送到客戶端,而客戶端渲染,則只在第一次拉取整個頁面,以後就是拉取資料本身,大大節約了網路開銷。