SSR、CSR名詞理解 & 應用場景

林鼎淵
Dean Lin
Published in
3 min readMar 18, 2021

--

當老闆或是主管問你為什麼選擇這個技術時,如果支支吾吾打不出來就遜掉了;理解為什麼該這樣做才是對技術的負責。

CSR - Client-Side Rendering(客戶端渲染)
優點
缺點
應用場景
SSR - Server-Side Rendering(伺服器端渲染)
優點
缺點
應用場景
可以思考的問題
現實面遇到的狀況
運用框架結合 CSR 與 SSR 的優點讓網站取得雙贏

CSR — Client-Side Rendering(客戶端渲染)

渲染過程全部交給 client 的瀏覽器去處理,server 不參與任何渲染。一開始的 HTML 是空白的,需要等待 JS 下載並執行後瀏覽器才會顯示畫面。

➤ 優點:

  • 減少 server 端的壓力:因為 JS 及 CSS 在第一次都已經發送到 client 端,之後只需要向 server 端取得相關頁面的 data 即可
  • 頁面切換速度快:因為 HTML 頁面都是 client 端自己編譯的,所以頁面切換時不需要像 SSR 等待 server 回傳 HTML;而且網頁內容的改變通常都是局部的,這樣就避免了不必要的跳轉及重複渲染。

➤ 缺點:

  • 首屏顯示慢:明明首頁只有一點內容卻把下載了所有頁面的資源
  • SEO 較差:因一開始的 HTML 是空白的,雖然現在 Google 的爬蟲也會等 javascript 編譯好再爬,但這塊對 SEO 的實際幫助還需要時間驗證

➤ 應用場景:

  • 會高頻操作且不需 SEO 的網站:像是內部管理系統,如果這類型的系統採取 SSR 會造成 server 端很大的負荷。

SSR — Server-Side Rendering(伺服器端渲染)

HTML 由 server 編譯出來返回 client 端,所以 client 看到的畫面就是最終版 HTML。

優點

  • SEO 排名更高:因為 Google 爬蟲可以直接抓到網站的資訊
  • 首屏渲染快:因為不需要下載一堆 JS 以及 CSS 執行後才看到頁面
  • 減少 client 端的耗電量:因為編譯的步驟都在 server 端執行

➤ 缺點:

  • server 端承受比較大的壓力:由於頁面都是在 server 端進行編譯,在高併發場景中會消耗相當大的資源

➤ 應用場景:

  • 低頻操作但需要 SEO 優化的網站:像是媒體類型的網站,因為文章需要被搜尋到,我們看一篇文章也需要一點時間很少高頻的操作這個網站

可以思考的問題

➤ 現實面遇到的狀況

在 CSR 的狀況下如果某個頁面需要同時存取多個 api,假設 client 端的網速不理想,那使用者的體驗會極差;在這種情況下 SSR 會因為 server 環境相對穩定而獲得相對好的使用者體驗。

➤ 運用框架結合 CSR 與 SSR 的優點讓網站取得雙贏

經由上面的分析,我想大家應該已經感受到 CSR 與 SSR 可以說是性質完全相反的渲染了,所以實際應用上我們通常會讓第一個頁面用 SSR 來爭取更高的 SEO,其他的頁面則採用 CSR 的方式來操作給使用者兩好的體驗。

現有的框架: Nuxt.js(Vue)、Next.js(React)都有很好的解決方案

以上是我個人針對 SSR、CSR 技術的理解,如果有理解錯誤的地方希望有大神給予指教,感恩不盡~

▶︎ 如果這篇文章有幫助到你1. 可以點擊下方「Follow」來追蹤我~
2. 可以對文章拍手讓我知道 👏🏻
你們的追蹤與鼓勵是我繼續寫作的動力 🙏🏼▶︎ 如果你對工程師的職涯感到迷茫1. 也許我在iT邦幫忙發表的系列文可以給你不一樣的觀點 💡
2. 也歡迎您到書局選購支持,透過豐富的案例來重新檢視自己的職涯

--

--

林鼎淵
Dean Lin

職涯中培育過多名工程師,🧰 目前在外商公司擔任 Software Specialist |✍️ 我專注寫 (1)最新技術 (2)團隊合作 (3)工程師職涯的文章,出版過 5 本專業書籍|👏🏻 如果對這些主題感興趣,歡迎點擊「Follow」來關注我~