【问题标题】:How to get multiple concurrent JQuery .load requests to run at the same time?如何让多个并发 JQuery .load 请求同时运行?
【发布时间】:2011-12-28 03:37:46
【问题描述】:

有谁知道如何让 jQuery .load() 函数同时工作?现在我有两个 .load() 函数,但 jQuery 似乎一次只运行一个。

$('#div1').load(url);
$('#div2').load(url2);

我知道大多数浏览器可以同时运行 2 个 AJAX 请求。我将不得不为他们两个建立一个 $.ajax() 请求吗?我宁愿不要,因为 .load() 容易得多。 :)

感谢您的宝贵时间。

更新
这些实际上是同时运行的。我检查了 FB,他们都在运行,但是第二个没有返回任何东西,所以我“假设”它不起作用。经过进一步检查,它没有返回任何内容,因为我正在检查一个会话变量,该变量正在被先前的 .load() 请求重置。

感谢所有反馈!

【问题讨论】:

  • 当你说“并发”时,你是什么意思?大多数浏览器仍然在单线程状态下执行 Javascript,所以我很好奇。 “异步”请求和静态演练“页面加载”不是同义词。
  • 应该同时加载两者。
  • @JaredFarrish:我认为 OP 希望浏览器同时打开两个请求。
  • @alex - 我不怀疑你,但你能解释一下吗?我确定我遗漏了一些明显的东西。
  • 在 HTML5 中您可以使用 web workers

标签: javascript jquery ajax concurrency


【解决方案1】:

您拥有的代码确实同时/无阻塞地运行两个请求。来自 jQuery 网站:

The async option to $.ajax() defaults to true, indicating that code execution can continue after the request is made.

.load() 只是低级 .ajax() 的包装器并使用默认值。使用浏览器中的开发人员工具(即 FireFox 中的 Firebug)来查看请求是否已发出,不要等待另一个完成。

【讨论】:

  • 你是对的,它们确实同时运行。我检查了 FB,他们都在运行,但是第二个没有返回任何东西,所以我“假设”它不起作用。经过进一步检查,它没有返回任何内容,因为我正在检查一个会话变量,由于之前的 .load() 尚未设置该变量。我必须想办法解决这个问题。感谢您的回答。
  • 没问题,很高兴你发现了问题!
猜你喜欢
  • 2012-10-16
  • 1970-01-01
  • 2018-01-19
  • 2020-08-06
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
相关资源
最近更新 更多