gpt4 book ai didi

javascript - Css 更改不适用于同步 ajax 调用

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:35 24 4
gpt4 key购买 nike

出于某些原因,我想使用 async : false 进行 synchronous ajax 调用,因为我想等待每个请求完成以执行下一个请求。

但它不起作用,CSS 更改 $(...).css( "opacity", "1") 不起作用。

但是当我切换到 async : true 时它起作用了!!

$( ".foo" ).each(function( i , item ) {

$(item ).find(".ajaxLoader").css( "opacity" , "1" );
$.ajax({
async : false,
....
complete : function(){ $(item ).find(".ajaxLoader").css( "opacity" , "0" ); }
});

});

最佳答案

答案是因为您使用不相关的同步 ajax 调用锁定了 UI,就像 @epascarello在告诉你。不要使用同步请求...你可能不需要任何循环,因为你可以从一个 ajax 调用中获取所有相关数据,我猜但是如果你想发出一些 ajax 请求(这次是异步的!)顺序,那么你可以使用:

var d = $.Deferred().resolve();
$(".foo").get().forEach(function(foo) {
d = d.then(function() {
return $.ajax({
/*async: true,*/
....
beforeSend: function(){
$(foo).find(".ajaxLoader").css("opacity", "1");
},
complete: function() {
$(foo).find(".ajaxLoader").css("opacity", "0");
}
});
});
});

关于javascript - Css 更改不适用于同步 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40192964/

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