公司技术会议有人提出把 SPA 网站 API 都换成 protojson 的返回来节省 API 服务器带宽,是不是意义很小?我们后端是 C#和 Node.js,不是 Java 和 Go,开发麻烦,浏览器已经有 gzip 压缩了

41 天前
 drymonfidelia
2925 次点击
所在节点    程序员
26 条回复
seakingii
39 天前
```
原数据: {"width":50,"height":180,"weight":50,"age":30,"name":"lalala","partner":{"width":28,"height":170,"weight":49,"age":30,"name":"bobo","adc":"acasdv"},"children":[{"width":30,"height":100,"weight":40,"age":12,"name":"liliya","friends":[{"name":"tom","type":"cat"},{"name":"bam","type":"dog"}]},{"width":45,"height":160,"weight":45,"age":15,"name":"tifny","friends":[{"name":"erix","gender":"male"}]}]}

编码数据: {"1":30,"2":[{"1":12,"2":[{"2":"tom","3":"cat"},{"2":"bam","3":"dog"}],"3":100,"4":"liliya","5":40,"6":30},{"1":15,"2":[{"1":"male","2":"erix"}],"3":160,"4":"tifny","5":45,"6":45}],"3":180,"4":"lalala","5":{"1":30,"2":170,"3":"bobo","4":49,"5":28,"adc":"acasdv"},"6":50,"7":50}

解码数据: {"age":30,"children":[{"age":12,"friends":[{"name":"tom","type":"cat"},{"name":"bam","type":"dog"}],"height":100,"name":"liliya","weight":40,"width":30},{"age":15,"friends":[{"gender":"male","name":"erix"}],"height":160,"name":"tifny","weight":45,"width":45}],"height":180,"name":"lalala","partner":{"age":30,"height":170,"name":"bobo","weight":49,"width":28,"adc":"acasdv"},"weight":50,"width":50}

```
Nosub
39 天前
@yangg 这个问题的方法有点本末倒置,先看看是什么问题,比如速度慢还是什么,如果是速度慢,应该找到速度慢的具体原因,如果只是减少返回数据的大小,为了加快访问速度,同 20 楼,可以研究下 brotli 以及 brotli static ,可能效果比你用 protojson 好很多。


Nginx 开启 Brotli 压缩
https://nosub.net/posts/p/182
kneo
39 天前
提建议的人应该主动给公司算一下能省多少带宽费用。老板决定值不值得。
lingalonely
39 天前
这是拍脑袋还是用数据评估的,比如现在 api 使用了多少带宽,使用 xxx 后能减少多少带宽,另外,在这里节省大概率会在其他地方找补
dfkjgklfdjg
38 天前
@julyclyde #17 ,现在有 nextjs 了,更流行前端转全栈了。
Mageblade
38 天前
启用 gzip 已经足够了,完全没必要改

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1063898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX