【问题标题】:Does the jquery success event run asychronously?jquery成功事件是否异步运行?
【发布时间】:2017-12-19 19:47:32
【问题描述】:

我知道我在 jquery 的 ajax 实现中运行的代码是异步的。

我的问题是,jquery实现ajax的成功事件也是异步运行的吗?

换句话说,如果我在成功事件中做了一些耗时的操作,它是否可能会冻结 DOM?像这样的:

$.ajax({
     url: "longprocess.php",
     type: "post",
     success: function(){
          do_another_very_long_process(); 
    } //will this slow down the DOM?
});

【问题讨论】:

  • 你为什么不试试看?
  • Does it run in the background? 没有。JS只有一个线程,所以没有“后台”的概念。 Would a time-consuming operation freeze the DOM? 是的。
  • 您可以通过使用 WebWorkers 获得类似后台处理的功能。
  • @AlexTartan 我对自己的编码技能没有足够的信心,还不知道这是否是我做错了。我以前试过。
  • @RoryMcCrossan 我更改了措辞并摆脱了背景问题,因为 ajax 在您回答时不会在后台运行。谢谢!

标签: javascript jquery ajax dom


【解决方案1】:

JavaScript 中没有后台代码,但我假设您的意思是像 Ajax 一样异步。是的,它会冻结 DOM。 success 事件中的函数在 Ajax 结果返回且没有错误时被调用,并且代码像任何普通的 JavaScript 代码一样被执行。

【讨论】:

  • 是的,我删除了问题的背景部分,因为它们令人困惑/不正确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 2011-07-02
  • 2019-07-31
  • 1970-01-01
  • 2015-11-26
  • 2023-03-13
相关资源
最近更新 更多