我们首页要同时拉用户信息、订单列表和系统通知,现在是三个独立的 fetch,感觉太慢了。有没有办法把它们合并成一个请求?
我试过用 Promise.all,但后端说这样还是三次数据库查询,没减轻压力。是不是得让后端搞个聚合接口?但我不确定前端这边该怎么配合。
Promise.all([
fetch('/api/user'),
fetch('/api/orders'),
fetch('/api/notifications')
]).then(responses => {
// 处理数据...
})
懒人方案:后端开一个
/api/home接口,一次性返回所有数据,结构大概这样:前端直接调一个接口就完事:
后端那边内部调用是同一事务或并行查库都行,反正只暴露一个 HTTP 入口,网络延迟直接省掉 2/3。你们后端要是嫌麻烦不愿意改,就把锅甩给性能优化,说首屏加载时间影响用户留存,产品经理会帮你们施压的。