目前我们团队正在做前后端分离,前端用vue做,有一些经验上的问题问大家。
比如页面上有个部门的数据,有个列表数据,列表里的部门字段,应该返回部门id,还是返回部门名称?
(返回id,则由前端去组织显示内容;返回名称,则直接显示;)一个页面假如需要请求5个接口,来来回回的请求响应会耽误不少时间;有没有什么技术,一次性请求后端的5个接口,只用消耗一次的等待时间就能拿到5个接口的数据?
目前我们团队正在做前后端分离,前端用vue做,有一些经验上的问题问大家。
比如页面上有个部门的数据,有个列表数据,列表里的部门字段,应该返回部门id,还是返回部门名称?
(返回id,则由前端去组织显示内容;返回名称,则直接显示;)
一个页面假如需要请求5个接口,来来回回的请求响应会耽误不少时间;有没有什么技术,一次性请求后端的5个接口,只用消耗一次的等待时间就能拿到5个接口的数据?
1.如果这个列表数据会有其他处理的可能,还是返回 ID 比较好
2.没有这个技术,后端一次性返回 5 个接口需要的数据感觉很low啊有木有, 那只能用异步加载咯
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
依据题中所言:前后端分离,想必是使用json进行前后端数据交互。
1、我们使用anguar做过SPA,事业单位的一个内部管理系统。遇到过返回部门数据的场景,我们的做法是返回id,在前端依据id,通过哈希表获取数据。
2、一个页面请求多个数据:
疑惑:你说的一次性拿到5个接口数据,然而只花一次请求数据所消耗的时间吗?
(1)浏览器的tab采用单线程来处理javascript,遇到并发请求的时候,是采用异步非阻塞的方式来实现并发的。由于是采用异步非阻塞的方法请求,所以说,这5个请求发送的时间间隔很短,这种情况下,几乎可以认为是同一时刻下发送的。
(2)每一个请求的响应时间都是不固定的。
(3)假设这5个接口的数据没有前后依赖关系的话,设请求响应时间为responseTimeN,其中最短耗时为min,设请求中最长耗时为max,那你等待的时间区间为 [min, max];而不会是responseTime1 + responseTime2 + responseTime3 + responseTime4 + responseTime5。