据我所知,HTTP / 2不再为每个请求使用单独的TCP连接,这是协议的主要性能提升。
这是否意味着我是否使用每个10kB内容的10个XHR或者100kB的一个XHR然后拆分客户端的部分并不重要?
答案 0 :(得分:2)
准确的答案需要针对您的具体案例制定基准。
从更一般的角度来看,从客户的角度来看,如果你可以同时制作10 XHR(例如,在紧密的循环中),那么会发生的是这10个请求会使客户端更多或者更少的同时,在客户端和服务器之间产生延迟,在服务器上处理(或多或少并行取决于服务器架构),因此结果可能类似于单个XHR - 尽管我期望单一要求更有效率。
然而,从服务器的角度来看,情况可能会有所不同。 如果您乘以单个请求可以完成的10,那么现在您的服务器看到请求率增加了10倍。 从网络读取,请求解析和请求调度都是在服务器中进行了大量优化的活动,但它们确实有成本,并且该成本可能会增加10倍。
对服务器的请求率增加10倍可能会影响数据库,文件系统等,因此可能会出现连锁效应,只能通过实际执行基准测试才能注意到。
您必须权衡的其他事项是您需要在服务器中进行聚合以及在客户端上拆分它们的工作量;以及其他不太可测量的事物,如代码清晰度和可维护性等等。
我想说共同的务实判断适用于此:如果你可以用一个请求做同样的工作,为什么要提出10个请求呢?你有更具体的例子吗?
如果您有疑问,请测量。