基於VUE的服務器端渲染(SSR)

什麼是服務器端渲染(SSR)

服務器端渲染(如下稱爲SSR):網頁一般是經過後端路由直接給客戶端的。也就是說網頁的html通常是後端服務器裏經過模板引擎渲染好後再交給前端的。javascript

對於其餘的效果,則是由預先寫在頁面裏的jq,bootstrap等常見的前端框架去完成的。html


什麼是前端渲染

以VUE爲例,咱們查看生產環境的頁面的html源碼,會獲得以下的樣子:前端

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Vue</title>
</head>
<body>
  <div id="app"></div>
  <script type="text/javascript" src="xxxx.xxx.js"></script>
  <script type="text/javascript" src="yyyy.yyy.js"></script>
  <script type="text/javascript" src="zzzz.zzz.js"></script>
</body>
</html>
複製代碼

其實,這個就是瀏覽器從服務器端拿到的html。這裏只有空的 <div id="app"></div> 入口,以及一系列的js。其實,咱們看到的頁面就是由這些js渲染出來的,這就是 前端渲染vue


SSR VS 前端渲染

名稱 SSR 前端渲染
優勢 有利於SEO
對安全性要求高的頁面採用SSR更保險
很大程度上緩解了服務器端的壓力
能夠作到無縫的頁面切換體驗
缺點 耦合性太強
jq時代的頁面很差維護
切換頁面出現白屏等
SEO不友好

爲何要用SSR

  • 更好的 SEO, 因爲搜索引擎爬蟲抓取工具能夠直接查看徹底渲染的頁面。
  • 更快的內容到達時間(time-to-content),特別是對於緩慢的網咯狀況或運行緩慢的設備。無需等待全部的JavaScript

使用SSR須要權衡之處

  • 開發條件限制。一些瀏覽器特定的代碼,只有在生命週期的某些鉤子函數中使用;一些外部擴展庫,可能須要特殊處理,才能在服務器端渲染程序中運行。
  • 涉及構建和部署的更多要求。SSR須要處於Node.js Server運行環境。
  • 更多的服務器端負載。

何時使用SSR

  • 主要取決於內容到達時間(time-to-content)對應用的重要程度。當內容到達時間(time-to-content)要求是絕對關鍵的指標時,就能夠用SSR來實現最佳的初始加載性能。

SSR VS 預渲染

  • 預渲染: 無需使用web服務器動態編譯HTML,在構建事簡單的生成針對特定的路由的靜態HTML文件
  • 什麼時候使用預渲染:只是用於改善少數營銷頁面的SEO。
  • 優勢:設置簡單,並能夠將前端做爲徹底靜態的站點。

參考連接:java

相關文章
相關標籤/搜索