谢邀,根据偶在BAT的开发经验来说,如果使用了前后端分离,首屏加载时间是会受到一定影响,但是与前后端分离带来的好处比起来,这个缺点是可以通过其他方式来弥补的。
首先由于前端要与后端通信才能获取数据,再渲染到页面上,这个等待时间在没有缓存的情况下,一定会使首屏加载时间变慢。
偶提供以下4个思路给大家分享:
1 在前后端分离的中间层使用node或者php。中间层可以做很多事情,比如路由控制,接口代理,服务端渲染等等,这里不妨用php来进行服务端渲染,从而加快数据的获取速度。
2 做一个loading的覆盖页,分散用户的注意力,从而使其忽视加载时间长短。比如目前APP常见的开屏广告,很多都是在wifi模式下预下载好的,然后等你下次打开app的时候,作为首屏展示给你,在你等待广告过去,或者去寻找那个小小的“跳过”按钮的时候,前后端的通信已经完成了。对于APP来说,即挣了广告费,又不会让用户感觉到自己加载慢,真的是一举两得。
3 使用第三方组件,比如react-placeholder。
4 优化网络,包括减少请求数(比如不要打开首屏的时候就发送一堆请求给后端),减少传输体积(header和body中精简数据),合理安排请求顺序(比如在页面上方的数据调用A接口,下方的数据调用B接口,那么就要先调用A接口,再调用B接口,尽快把用户先看到的区域数据加载好)等,通过这些方式,也能够减少首屏的加载等待时间。
以上是偶的浅见,欢迎各位在下方评论区给偶交流点赞。
偶是苏苏思量,来自BAT的Java开发工程师,每日分享科技类见闻,欢迎关注偶,与偶共同进步。