【发布时间】:2017-05-11 10:12:31
【问题描述】:
我有一个网站女巫使用 Angularjs 连接到一个用 php 编写的 api 来获取数据并执行操作,然后这个 api 发送一个 json 结果。在检查网站性能时,我发现我的服务器响应比从网上下载响应要慢!!! 如何通过较短的别名更改 json 属性名称?例如:
{
"name": "test",
"family": "testi"
}
必须转换为:
{
"n": "test",
"f": "testi"
}
如果我的响应包含一个对象数组,那么第二种形式的响应内容长度确实要短得多。
对于这个问题,客户端和服务器端有什么技术吗?还是有其他解决方案?
【问题讨论】:
-
除非您可以控制 API 的两个端点,否则无法减小响应的大小(除了压缩连接,这只会将负载转移到 CPU 而不是网络)。如果您确实有控制权,那么仅重写您的 api 应该没有问题吗?这不可能简单地在“幕后”自动化。
-
另外:现在CPU / RAM /带宽等资源非常丰富,写一个干净的api比节省一些带宽字节要好得多。 (您的示例在 8 个字节上有所不同,我知道它只是为了显示......但即使它是 800 个字节,即使您每天对该资源有一百万个请求,它也只会总计约 770mb...... ,到那时可能会被认为是微不足道的)
-
我的问题是“时间”。我的网站花费 11 秒从网络下载此响应,用户必须等到此操作完成。我想减少这段时间以获得最佳的用户体验。
-
我想知道是否有任何技术或最佳实践可以实现这一目标?
-
根据您的网络服务器和您对其配置文件的控制,您可以尝试启用压缩(例如,对 apache 使用 mod_gzip 或 mod_deflate)。