【问题标题】:Wait for all asynchronous Ajax calls, so page is fully loaded等待所有异步 Ajax 调用,因此页面已完全加载
【发布时间】:2017-12-18 23:55:54
【问题描述】:

有一些网站(如 youtube)在 DOM 准备好后通过 javascript 加载大部分内容。 在注入代码之前,如何确定所有这些请求都已完成。

window.onload = function() {};

在这里不起作用。我的入口点总是在加载整个 Ajax 内容之前。 有没有类似全球承诺的东西?

【问题讨论】:

  • 你不能。他们可能随时继续加载更多内容。
  • 您是否正在控制页面上执行此操作的代码?做出一个等待所有你想等待的事情的承诺应该是微不足道的。
  • +1 有趣的问题。虽然我很确定你不能这样做,但我很想看到有趣的黑客攻击
  • 但是pace.js 呢?他们以某种方式做到了,不是吗?
  • @FelixTraum 你检查过他们的来源吗? This 似乎相关。

标签: javascript jquery ajax


【解决方案1】:

如果您需要跟踪 ajax 调用。尝试使用 Promises,这样你就可以保证所有调用都完成了。

试试这个: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

我不时使用它来等待多个 ajax 调用完成,然后再做一些事情。 希望这可以帮助!!!干杯

【讨论】:

  • 这行不通,因为我只能将它与我自己指定的 Promise 一起使用。我需要所有其他的承诺,我没有亲自设置。
  • 了解其他方法会很有趣。我的假设是您控制浏览器发送的 ajax 请求。同样,这无关紧要。但是看看你是否可以以任何方式使用它:stackoverflow.com/questions/5202296/…
猜你喜欢
  • 2017-09-27
  • 2019-02-10
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2023-03-15
  • 2016-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多