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