Javascript-取消的请求会影响性能吗?
我们的应用程序正在使用angular并获得大量请求。有一组请求(请求BCD)依赖于监视另一个请求返回的数据。(请参阅附件),因此当第一次加载页面时,它将发送BCD请求,同时发送一个请求。当请求返回数据时,BCD请求将再次发送,先前的BCD请求将中止(取消) 我的问题是:既然请求被取消了,这会影响我的页面加载时间吗?我是否应该实现这样的承诺:让BCD请求等待请求完成,然后观察从请求返回的数据Javascript-取消的请求会影响性能吗?,javascript,performance,xmlhttprequest,Javascript,Performance,Xmlhttprequest,我们的应用程序正在使用angular并获得大量请求。有一组请求(请求BCD)依赖于监视另一个请求返回的数据。(请参阅附件),因此当第一次加载页面时,它将发送BCD请求,同时发送一个请求。当请求返回数据时,BCD请求将再次发送,先前的BCD请求将中止(取消) 我的问题是:既然请求被取消了,这会影响我的页面加载时间吗?我是否应该实现这样的承诺:让BCD请求等待请求完成,然后观察从请求返回的数据 由于引擎必须执行某些操作以取消请求,因此将需要额外的工作。你可以找到步骤 正如您所见,发动机将不得不触发以
由于引擎必须执行某些操作以取消请求,因此将需要额外的工作。你可以找到步骤 正如您所见,发动机将不得不触发以下事件:
- readystatechange
- 进展
- 流产
- 负荷端
编辑1:
如果您引用,除了
中止
,上述事件都将被激发。根据状态,可能是错误
或加载
或超时
。但取消请求会使引擎立即触发这些事件,这可能会增加一些时间。但是,总时间可以忽略不计。在我看来,取消请求不应该有任何影响,因为XHR是异步的。这是一个非常广泛(而且模糊)的问题,您最好的答案就在指尖上。如果你有理由去观察绩效,那么就衡量一下,看看是否有差异。这是确定任何地方是否存在任何问题的最简单(最相关、最正确)的方法。感谢您的回复Rajesh!在我看来,发出一个中止的请求是微不足道的。但在另一个请求返回之前,不会中止此请求。在本例中,我正在拍摄4个请求,您是否认为由于4个请求拍摄的时间比一个请求长很多?(另外,再次感谢您的回复,我会乐观地去做这件事,无论延迟时间是大是小,但我只是有兴趣知道拍摄一个或多个请求是否需要类似的时间)是的,提出4个请求需要更多的时间,但这是你想要的。如果希望实时更新,您可以随时查看web套接字。您还可以查看console.time
以匹配性能。请记住,这不会对您的网站的性能产生影响,但会对服务器产生影响,因为它的负载会增加。