同步 XMLHttpRequest Strophe.js

Synchronous XMLHttpRequest Strophe.js

我正在使用 Strophe.js(基于 JS 的 Xmpp 库)。问题是我需要建立同步连接,以便我收到的响应顺序正确。但是当我使用同步连接时,页面有点卡住了。即使是右键单击打开控制台也需要几分钟。

我在页面上收到此警告。

[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

请帮忙!

警告只是告诉您出于某种原因,最好使用异步调用。

同步调用将阻塞您的其余代码,直到收到响应。不知何故,您同步调用 return.

需要很长时间

如果不查看您的代码,很难说出原因,但您可以尝试通过在浏览器中输入 URL 来检索您尝试获取的资源,然后查看获取所需的时间回复,或者您是否收到回复,以及是否发现任何错误。

如果资源无法检索或获取速度缓慢,您知道问题出在哪里以及在哪里解决。

有一些方法可以按正确的顺序获取 XMLHttpRequest 结果:

  • 使用同步调用并尽量确保服务器响应足够快;
  • 使用异步调用并在上一个调用成功 return 时开始下一个调用(因此在上一个请求的回调中开始下一个请求);
  • 使用异步调用,存储请求编号,将响应存储在临时数组中,直到所有调用都已 returned,并对它们进行排序;
  • 一些我不知道的时髦和现代的方式,但 Google 可能知道。