Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-取消的请求会影响性能吗?_Javascript_Performance_Xmlhttprequest - Fatal编程技术网

Javascript-取消的请求会影响性能吗?

Javascript-取消的请求会影响性能吗?,javascript,performance,xmlhttprequest,Javascript,Performance,Xmlhttprequest,我们的应用程序正在使用angular并获得大量请求。有一组请求(请求BCD)依赖于监视另一个请求返回的数据。(请参阅附件),因此当第一次加载页面时,它将发送BCD请求,同时发送一个请求。当请求返回数据时,BCD请求将再次发送,先前的BCD请求将中止(取消) 我的问题是:既然请求被取消了,这会影响我的页面加载时间吗?我是否应该实现这样的承诺:让BCD请求等待请求完成,然后观察从请求返回的数据 由于引擎必须执行某些操作以取消请求,因此将需要额外的工作。你可以找到步骤 正如您所见,发动机将不得不触发以

我们的应用程序正在使用angular并获得大量请求。有一组请求(请求BCD)依赖于监视另一个请求返回的数据。(请参阅附件),因此当第一次加载页面时,它将发送BCD请求,同时发送一个请求。当请求返回数据时,BCD请求将再次发送,先前的BCD请求将中止(取消)

我的问题是:既然请求被取消了,这会影响我的页面加载时间吗?我是否应该实现这样的承诺:让BCD请求等待请求完成,然后观察从请求返回的数据


由于引擎必须执行某些操作以取消请求,因此将需要额外的工作。你可以找到步骤

正如您所见,发动机将不得不触发以下事件:

  • readystatechange
  • 进展
  • 流产
  • 负荷端
以及更新一些标志。但这些工作所需的时间将非常少,性能的延迟可以忽略不计


编辑1:


如果您引用,除了
中止
,上述事件都将被激发。根据状态,可能是
错误
加载
超时
。但取消请求会使引擎立即触发这些事件,这可能会增加一些时间。但是,总时间可以忽略不计。

在我看来,取消请求不应该有任何影响,因为XHR是异步的。这是一个非常广泛(而且模糊)的问题,您最好的答案就在指尖上。如果你有理由去观察绩效,那么就衡量一下,看看是否有差异。这是确定任何地方是否存在任何问题的最简单(最相关、最正确)的方法。感谢您的回复Rajesh!在我看来,发出一个中止的请求是微不足道的。但在另一个请求返回之前,不会中止此请求。在本例中,我正在拍摄4个请求,您是否认为由于4个请求拍摄的时间比一个请求长很多?(另外,再次感谢您的回复,我会乐观地去做这件事,无论延迟时间是大是小,但我只是有兴趣知道拍摄一个或多个请求是否需要类似的时间)是的,提出4个请求需要更多的时间,但这是你想要的。如果希望实时更新,您可以随时查看web套接字。您还可以查看
console.time
以匹配性能。请记住,这不会对您的网站的性能产生影响,但会对服务器产生影响,因为它的负载会增加。