1

在客户端上使用 javascript 时,通常可以一次加载整个数据块,例如load("http://restful.server.com/api/model/")加载或仅加载所需的数据,例如load("http://restful.server.com/api/model/id=1234"). 当您只需要几个项目时,后者是有意义的。但是,如果所需项目的数量变化很大,那么发出大量请求的延迟就会变得难以承受。

如果您无法提前知道哪种方法最快,您如何确定如何构建请求以优化加载时间?

举个例子,我正在开发的一个应用程序显示以下数字:

individual: Load choices based on individual questions, following the foreign
        relationship. The logical way, but costs round-trip-time.
  Min           Avg         Stddev      Max
times 77.13955832   96.59890914 23.99644340 184.17492986
sizes 0.232828M     0.238071M   0.002353M   0.241834M
speed 1.264167K     2.566590K   0.424770K   3.109053K

all: Load all choices in one go, ignoring the fact that most of them will be
     unused. Sloppy, but fast?
      Min           Avg         Stddev      Max
times 0.21781421    1.79287671  6.82427604  31.53920007
sizes 0.656552M     0.656552M   0.00000000  0.656552M
speed 0.020817M     2.746438M   0.6278713M  3.014275M

请注意,all速度大约要高一个数量级。这显然受到本次测试中与服务器的一跳 GigE 连接的影响。但是,实际连接显示更大的最小 RTT 以及更低的吞吐量,它应该是相似的。一旦完成,虽然我预计可用数据的大小将增长 1.3-2 个数量级。这意味着批量加载仅适用于超快速连接。该怎么办?

4

0 回答 0