最早時期的web
如果要呈現動態網頁,之前最早的時候只能ssr。
服務端把 資料+html 渲染成一個完整的web頁面,傳送給前端。這時候的web只是簡單的資訊展示。
有互動性的web
然後發現網站光是有資料的展示還不夠,還需要有互動性。
互動性的工作交給了JS來完成,這時期的伺服器上面除了讀取資料的後端程式碼,還夾雜著很多JS的程式碼。
前後分離的web
夾雜著JS程式碼的後端不利於維護,前後端程式碼分離成為大家的心聲。(伺服器來做大量的資料渲染計算也浪費了伺服器的資源)
而前後端程式碼分離需要面臨的一個問題就是資料通訊的問題,後端動態的資料怎麼傳送給前端。
這時Ajax(後來有fetch)被提出,Ajax能非同步請求資料,讓使用者瀏覽網頁時感覺更加平滑。Ajax不僅解決了資料通訊問題,讓前後端分離(前後端並行開發)成為可能,還帶了使用者體驗上的增強(非同步載入)。
SPA出現
互動體驗的極致和各個移動端的興起,SPA開始初出茅廬。
SPA接近於Native App,除了首次載入慢的問題(這個要看如何實現,也有避免首次載入慢的解決辦法)。以後的操作都不需重新重新整理整個頁面,而是隻更新部分元件。
使使用者感覺更快,體驗更好。
SPA帶來的問題
SPA帶來了SEO和首次載入過慢的問題。
服務端來渲染互動性強的web。
這時的服務端渲染已經不同於以往的服務端渲染了。
以往的服務端渲染只是想把資料動態的展示到網頁上。而不考慮web的互動性,實現也是由後端人員實現的。
但是現在的情況是,我們不僅需要一個具有互動性的web,而且這個web應用是由後端生成好的。
並且還必須前後端分離,不能有程式碼冗雜。還有,這種ssr 的實現是由前端人員來完成的。
歷史的車輪感覺又轉回去了,但是意義完全不一樣。
技術就像是螺旋上升的。