基本流程:客戶端請求node服務器,node服務分析請求(此步可也可根據情況,從node層的緩存中取數據),再請求后一層的應用服務(java...),然后再把數據給客戶端。
疑問:
咋一看,感覺這種設計不是更麻煩了嗎?中間還有個node層需要去維護?那這種設計的優點是什么呢?主要有以下幾點好處:
- 合并請求,有時后臺接口顆粒度小,一個頁面要請求多個接口才能完成業務功能,改成node服務取請求多個合并數據,并且是內網,請求很快。
- 可以減輕客戶端內存,項目用戶體驗好。不會像mvvm模式的項目把頁面渲染和數據請求都壓在客戶端,可以在node層把數據填充到模板,返回給瀏覽器直接渲染。
- SEO性好,不像mvvm模式頁面由js生成,而是在服務器渲染好html 字符,有利于網頁被搜索到。
- 前后端分離的更徹底,解放后端工作量,后端只輸出基礎數據,node層完成,不用再為了前端頁面業務需求,特意輸出接口。
- 擴展前端的范圍,甚至可以做服務器,數據庫層面的優化,比如中間層用nginx,redis來優化項目,應對高并發。
結論: 總的來說,這是一種開發模式的改變,但是有一定的成本,前端開發的工作量會變大,對前端團隊的開發,相對來說要求也會更高點。但是出于技術提高的角度,對于前端開發是有益的。