我有一个包含工厂数据的工厂详细信息页面,一个显示alternativelink产品描述轮播的affiliatelink组件和一个显示详细信息页面注释的组件。
我希望这样的页面能够快速加载,因为这可能会提高我在google上的网站排名。考虑到这一点,我正在考虑对这三个组件进行多次获取请求,首先对工厂数据进行获取请求,然后对关联数据进行获取请求,最后进行注释。
这会导致页面加载更快吗?我问这个问题是因为在这个stackoverflow线程Very large HTTP request vs many small requests中 有人提到,使用多个小get请求而不是一个大get请求会导致分配额外的开销,从而使加载总体变慢。
我在侧面还有一个小问题:如果我希望并行加载不同的组件,我是否应该在html模板页面中为页面中的affiliatelink和comment组件使用async关键字?那么不同的获取请求又如何呢?它们可以并行发送还是一次只能发送一个?
谢谢
答案 0 :(得分:2)
HTTP请求通常是异步的。这意味着,它们不会阻塞您的浏览器执行线程(浏览器为单线程)以等待接收数据。话虽如此。使其平行是理想的。
但这完全取决于您如何发出这些请求以及以后的请求是否取决于前者。
如果您的PlantDataComponent,AffiliateLinkComponent和DetailsPageCommentsComponent是同级,则可以将它们全部一起加载。为此,您必须对各自的服务进行并行API调用。
但是,如果在上一个组件上进行用户交互之后要显示其中一个组件,那么您应该等待该用户交互,从而延迟加载数据。希望有道理。