java - 单入口页面和模版引擎有什么区别?
迷茫
迷茫 2017-04-18 09:05:35
0
3
345

用Java开发写前端页面,传统方式如JSP,模版引擎如Freemarker,Velocity,Thymeleaf,单入口(配合Angular.js,Vue.js等前端框架),只有一个index.html,所有的功能都在这个页面中完成。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(3)
黄舟

單頁應用講究前端渲染,很可能伺服器端回傳的是一個近乎空的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元素,新增樣式。 。 。 。 。

這裡要注意的是,前端渲染照樣需要模板引擎,如果你看AngularJS的話,他的資料是這樣被綁定的:

<span>{{ pageTitle }}</span>
<ul>
    <li ng-repeat="user in users">
        {{ user.name }}
    </li>
</ul>

而你談到的諸如:FreemarkerVelocityThymeleaf之類的模板引擎是在後端接收到請求之後,組合數據直接渲染FreemarkerVelocityThymeleaf之类的模板引擎是在后端接收到请求之后,组合数据直接渲染html成字串,然後回傳給前端的方式。

所以二者重點不同

左手右手慢动作

@leftstick 回答的真是太棒了。 。

根據我工作上的經驗,我總結幾點。

單頁應用程式的好處:

  1. 只有一個頁面,降低了複雜性;

  2. 完全前後端分離,資料交互作用透過​​ajax進行;

  3. 部署方便,只要部署css/html/javascript就行;

  4. 把渲染放到了客戶端,可以降低伺服器的壓力;

  5. 後端的工作量會減少。

壞處嗎?還沒遇到。 。歡迎 @leftstick 補充

哦。壞處是前端的工作量會加大。 。哈哈。 。

但是要有大局意識啊。前後端整體看來,工作量應該還是減少的。


想到了一個老生常談的壞處:

不利於SEO

但是這種單頁應用程式一般都是做的後台管理,所以根本不需要SEO,如果能被搜尋到,我想大部分人都會禁止掉爬蟲來爬你的後台的。 。

當然,如果是網路型的單頁應用,可能就需要SEO了。貌似也有相應的解決方案。沒深究過。

伊谢尔伦

伺服器端渲染和客戶端渲染的區別。
伺服器端渲染是在伺服器端產生整個頁面傳送到客戶端,而客戶端渲染,則只在第一次拉取整個頁面,以後就是拉取資料本身,大大節約了網路開銷。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!