各位大佬好,现在我这里遇到的请求是这样的。
有一个 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 ![]() 所谓差异接口,其实是比对时间,更新时间大于某个点的,返回,客户端调用时候需要把上次的全量时间传入,其实就是一层更新时间过滤,来减少返回量 |
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 ![]() 数据量大, 总是有新增, 新增又很少, 考虑怎么做成增量同步的. 找一个方法确定数据的游标, 每次拿数据只拿比当前游标更加新的数据 |
![]() | 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 ![]() @VeryZero 不用 MD5,标准里就有用来干这个的。Etag |
10 Yunen 2021-05-02 16:53:50 +08:00 使用 websocket 进行主动推送,只推送新内容就好 |
![]() | 11 SingeeKing PRO ![]() 为什么我看楼主的需求好像 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 长连接要求较高不建议, 拆分接口比较容易 |