onload中需要发送一个以上请求,就需要重复设置setData,如何避免。
发布于 6 年前 作者 leixiang 9149 次浏览 来自 问答

如图

10 回复

像这样?可是这样请求的话,必须要等待所有请求都响应后才会刷出页面。请求多的时候会延迟较长之类,或者有个请求失败也会导致丢失整个页面。请问大神你们是如何避免的?

有的,通常情况下提升比较显著。

我的意思是使用统一接口,

请求统一接口,返回N组数据,如评论是评论的,详情是详情的等等

this.setData({

    detail:res.data.detail,

comment:res.data.comment

})

前端没办法处理了么?后端处理太过麻烦了,每个页面加载时都会发几个请求,都做合并的话,要做很多新接口。我们公司后端人手严重不足。让后端去做不现实。只能自己处理了。

那要怎么合呢?比如上面俩个ajax请求怎么合成一个setdata,小程序不支持promise的呀

这样做对于性能有提升么?还是只是警告没了,其他并没卵用

自己写一个方法,把几个setData的请求数据合并起来即可。

var mergedData = {}
for(var k in data1) mergedData[k] = data1[k]
for(var k in data2) mergedData[k] = data2[k]
// ...
this.setData(mergedData)

也就是后端做处理

记录请求返回数据,等到两个请求都到达之后再进行数据合并。

怎样发送?同步异步?,接收的结果怎么区分是哪个接口的响应?给个demo?

回到顶部