前后端分離是否會影響首屏加載時間?
謝邀,根據(jù)我在BAT的開發(fā)經(jīng)驗來說,如果使用了前后端分離,首屏加載時間是會受到一定影響,但是與前后端分離帶來的好處比起來,這個缺點是可以通過其他方式來彌補的。
首先由于前端要與后端通信才能獲取數(shù)據(jù),再渲染到頁面上,這個等待時間在沒有緩存的情況下,一定會使首屏加載時間變慢。
我提供以下4個思路給大家分享:
1 在前后端分離的中間層使用node或者php。中間層可以做很多事情,比如路由控制,接口代理,服務(wù)端渲染等等,這里不妨用php來進(jìn)行服務(wù)端渲染,從而加快數(shù)據(jù)的獲取速度。
2 做一個loading的覆蓋頁,分散用戶的注意力,從而使其忽視加載時間長短。比如目前APP常見的開屏廣告,很多都是在wifi模式下預(yù)下載好的,然后等你下次打開app的時候,作為首屏展示給你,在你等待廣告過去,或者去尋找那個小小的“跳過”按鈕的時候,前后端的通信已經(jīng)完成了。對于APP來說,即掙了廣告費,又不會讓用戶感覺到自己加載慢,真的是一舉兩得。
3 使用第三方組件,比如react-placeholder。
4 優(yōu)化網(wǎng)絡(luò),包括減少請求數(shù)(比如不要打開首屏的時候就發(fā)送一堆請求給后端),減少傳輸體積(header和body中精簡數(shù)據(jù)),合理安排請求順序(比如在頁面上方的數(shù)據(jù)調(diào)用A接口,下方的數(shù)據(jù)調(diào)用B接口,那么就要先調(diào)用A接口,再調(diào)用B接口,盡快把用戶先看到的區(qū)域數(shù)據(jù)加載好)等,通過這些方式,也能夠減少首屏的加載等待時間。
以上是我的淺見,歡迎各位在下方評論區(qū)給我交流點贊。
我是蘇蘇思量,來自BAT的Java開發(fā)工程師,每日分享科技類見聞,歡迎關(guān)注我,與我共同進(jìn)步。