1. 程式人生 > >服務端渲染和客戶端渲染的對比

服務端渲染和客戶端渲染的對比

這裡結合art-template模板引擎說明。

首先了解下前端頁面中如何使用art-template

1、script 標籤匯入包,當這個標籤匯入完畢後,在window全域性中就有了template 函式。

2、建立一個script標籤,內部是模板字串

<script type="text/template" id="tmpl">

3、 var htmlStr = template('tmpl',{要渲染的資料物件})

4、將建立好的HTML字串,追加到頁面中即可

 

重點來啦!

1、伺服器端渲染

     每當有客戶端請求頁面了,伺服器先在後端呼叫art-template,把指定的頁面預先在後端渲染後,然後通過res.end把這個渲染完畢的完整頁面,

返回給客戶端直接展示。

 優點:對SEO友好,因為我們經過伺服器端渲染的頁面,在網路中傳輸的時候,傳輸的是一個真實的頁面。因此,爬蟲客戶端,當爬到我們的頁面後,

會分系我們給他提供的這個頁面,此時,我們頁面中的關鍵資料就會被爬蟲給收錄了。

缺點: 伺服器端渲染,對伺服器壓力比較打,可以使用伺服器端的頁面快取技術,減輕伺服器的渲染壓力;不適合前後端分離開發。

 

2、客戶端渲染

     每當使用者要請求某個頁面了,

 第一步,使用者需要先把這個頁面請求到客戶端,此時使用者拿到的頁面只是一個模板頁面。

 第二步,瀏覽器在解析模板頁面的時候,會發起art-template的二次資源請求,同時要傳送Ajax請求,去伺服器獲取資料

 第三步,在客戶端呼叫art-template 渲染HTML結構,並把渲染厚的htmlStr append 到頁面指定的容器中;

缺點: 對SEO相當不友好

優點: 減輕了伺服器端的渲染壓力;同時,最大的好處就是:能夠實現前後端分離開發;

 

各自應用的場景:

1、當不需要對SEO友好的時候,推薦使用客戶端渲染;

2、當需要對 SEO友好的時候,推薦使用伺服器端渲染