我正在准备一个单页应用程序,该应用程序有时会在缓慢的移动连接上使用。就API请求而言,它的某些部分相当繁重(为新的屏幕显示获取10个不同的资源)。
现在,将这些服务合并到提供所有必需数据的服务中,但是就REST原理而言不是“纯”的,这是一个好主意吗?是否会有可观的性能提升?
我正在准备一个单页应用程序,该应用程序有时会在缓慢的移动连接上使用。就API请求而言,它的某些部分相当繁重(为新的屏幕显示获取10个不同的资源)。
现在,将这些服务合并到提供所有必需数据的服务中,但是就REST原理而言不是“纯”的,这是一个好主意吗?是否会有可观的性能提升?
Answers:
REST的优点之一是能够通过传统的http缓存来缓存请求(假设这些请求是可缓存的请求)。
当您有单个,较大,使用频率较低且可能不同的请求时(a,b,c,d
这次我要获取项目,a,b,d,e
下次要获取项目),则使该请求更有可能是缓存未命中,并从可能是坐在您和来源之间的某个地方。
给定上面提到的两组请求,第二个请求的缓存命中率可能为75%,并且基本上只获取e
而不是全部四个东西的速度要快得多。
请注意,这对于使用它的人可能不是立即显而易见的,因为执行第一组高速缓存未命中请求的人仍将具有高速缓存未命中。
这并不是说在移动网络连接上比较理想,因为这种连接不太可能获得非本地缓存命中。但是对于热点或其他wifi情况,缓存命中可能会更有用。
同样,其中的大部分取决于应用程序的工作方式。它在启动时是否要求所有这些数据?还是我们在谈论响应时间预期不同的页面加载?
理想的操作是对其进行测试,以查看您的应用程序在各种情况下的性能。考虑设置一种情况,将您的移动设备绑定到可以监控的本地wifi网络(这只是Google的第一击),并模拟不良的互联网连接以查看实际情况(或不正常)以及哪一个表现最好。