Batch Requests

2015-09-24  本文已影响743人  liyinkan

今天听 sofish 分享了好多。感觉还是回来写一下这个比较好。
我不知道在场多少人了解这个事情,至少我带去的小伙伴都是似懂非懂。
正好好久不写技术东西,来了心情,那就不能浪费。
为什么我没有现场讲呢?
因为没图我只能说个杰宝啊。


[合并请求] 这个需求来源点是:我们有太多的请求,影响性能,不如合并一起发送,减少 HTTP 请求数量。

这里,请求分两类

静态数据

这个比较好处理,简单粗暴的方式就是

展现数据

异步请求一般用的是相对复杂的过程,这个过程中,需要前后端的配合。

肯定不能是两个接口,分开的时候请求/aaa 和 /bbb,合并的时候请求/ccc,这也太2了。

大致就是这样一个过程:

br.png

其实就做了四件事情

约定数据结构

请求大致会是这个样子

"requests": [
  {
    "seq":"0",
    "api":"aaa",
    "data":"111"
  },{
    "seq":"1",
    "api":"bbb",
    "data":"222"
  }
]

返回大致会是这个样子

"responses": [
  {
    "seq":"0",
    "data":"oo"
  },{
    "seq":"1",
    "data":"xx"
  }
]

拦截

分发

拼装

分发


整个过程对于前端和后端开发都是透明的。
前端来看我发出去是一个一个的。
后端来看我接收到的也是一个一个的。
不足是,所有交互都会有差不多 20ms 的延迟。

5年前我们就是这样做的。

反正我是一个渣渣,哪里写错了,有本事你来咬我呀!

上一篇 下一篇

猜你喜欢

热点阅读