各位大佬好,现在我这里遇到的请求是这样的。
有一个 POST 接口,每次返回 JSON 数据大小在 5MB - 10MB 左右,每次请求会有一些新数据,但是短时间间隔内会有重复的数据且大部分是重复数据。
请问有什么方案可以更好的解析数据,提取我要的新数据,我拿到新数据再处理数据。
感谢各位大佬。
1
ichanne 2021-05-02 14:08:27 +08:00 via iPhone
长连接?
|
2
imdong 2021-05-02 14:22:19 +08:00 via iPhone
比较好的方案就是,首次加载完整数据,同时长连接接收变动数据推送。
本地实时合并数据。 |
3
opengps 2021-05-02 14:23:03 +08:00
分为两个接口:
1,全量接口 2,差异接口 |
4
opengps 2021-05-02 14:24:51 +08:00 1
所谓差异接口,其实是比对时间,更新时间大于某个点的,返回,客户端调用时候需要把上次的全量时间传入,其实就是一层更新时间过滤,来减少返回量
|
5
Lemeng 2021-05-02 14:26:24 +08:00
嗯嗯,楼上说的是目前通用的
|
6
redtea 2021-05-02 15:01:34 +08:00
JSON 结构调整一下,返回时数据压缩一下,就能小很多了。
|
7
Jooooooooo 2021-05-02 15:03:52 +08:00 1
数据量大, 总是有新增, 新增又很少, 考虑怎么做成增量同步的.
找一个方法确定数据的游标, 每次拿数据只拿比当前游标更加新的数据 |
8
VeryZero 2021-05-02 15:14:29 +08:00
方法 1:放弃轮训,改为推送
方法 2:增加一个返回 md5 的接口,先请求该接口确定数据有没有变化,变化以后再请求另一个接口,减少开销 |
9
learningman 2021-05-02 16:06:15 +08:00 via Android 2
@VeryZero 不用 MD5,标准里就有用来干这个的。Etag
|
10
Yunen 2021-05-02 16:53:50 +08:00
使用 websocket 进行主动推送,只推送新内容就好
|
11
SingeeKing 2021-05-02 17:50:09 +08:00 via iPhone 1
为什么我看楼主的需求好像 API 是第三方提供的
|
12
luozic 2021-05-02 18:00:01 +08:00
md5 + 变更滑动窗口。
|
13
screen 2021-05-02 19:18:10 +08:00 via iPhone
差量更新+cdn
|
14
lu5je0 2021-05-02 19:32:48 +08:00 via Android
可以参考游戏更新
|
15
GGGG430 2021-05-04 17:44:20 +08:00
长连接要求较高不建议, 拆分接口比较容易
|