gpt4 book ai didi

javascript - Ajax Complete 在成功准备好之前被触发,如何防止这种行为?

转载 作者:行者123 更新时间:2023-11-28 13:31:16 25 4
gpt4 key购买 nike

我有一个 AJAX 请求,它获取一 block HTML,并将其插入到 DOM 中。当发生这种情况时,我正在显示一个旋转器加载 gif。

我希望微调器在从 ajax 请求接收到的数据插入 DOM 的同时隐藏。

问题是 JavaScript HTML 实际插入到 DOM 之前就开始执行完整的部分。因此,对于最终用户来说,旋转器消失,不久之后,DOM 就会弹出。

 $('#mySpinner').show();
$.ajax({
success: function(data) {
$('#myElement').html(data);
},
complete:(){
$('#mySpinner').hide(); // This is called when the success part is still executing
}
});

编辑:我并不是说在成功之前就触发完成。我是说在成功准备就绪之前就触发了complete。所以发生的顺序是这样的:

  1. 成功才叫
  2. $('#myElement').html(data); 被调用
  3. 调用完成
  4. $('#mySpinner').hide() 被调用
  5. $('#mySpinner').hide() 已完成
  6. $('#myElement').html(data); 已完成

最佳答案

然后就这样做:

$('#mySpinner').show();
$.ajax({
success: function(data) {
$('#myElement').html(data);
$('#mySpinner').hide();
}

});

但是您描述的行为与 jQuery 文档不内联,因为 complete 应该只在 successerror 之后发生......您可以重现吗jsFiddle 中的这种错误行为?问题可能出在其他地方......

关于javascript - Ajax Complete 在成功准备好之前被触发,如何防止这种行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24648299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com