需要一些帮助理解此处记录的success
和ajaxSuccess
事件之间的区别。
success
是一个本地事件,而ajaxSuccess
是一个全局事件。我了解本地和全局变量之间的区别,但有些难以理解事件范围的概念。
在什么情况下应该优先选择其中的一个?以下是一些示例场景:
您可以如下使用全局事件:
$.ajaxSuccess(function(){
//do my global thing here
});
success: function(){/* do local here */});
仅在局部ajax调用函数内作为私有对象触发。
请注意
$.ajaxComplete(function(){ });
如果它在完成时触发(无论是否出错),complete
可能就是您想要的。
编辑:值得注意的是,全局 ajaxSetup
中的本地 success:
(不建议使用此方法,建议使用 $.ajaxSuccess
)
$.ajaxSetup({
success: function() {
// local within the ajaxSetup
}
});
那么,我们为什么会选择其中的一个呢?也许您需要对返回的对象进行特殊过滤:
$(selector1).ajax({
success: function(data){
processMySelector1JSON(data);
}
});
$(selectorOther).ajax({
success: function(data){
processMySelectorOtherJSON(data);
}
});
$.ajaxSuccess(function(){
$('#message').text('Ajax Done!').fadeIn(function(){$(this).fadeOut();});
});
success: function()
更好,因为只有在请求成功时才会调用此事件。它检查来自服务器的错误和数据错误,使其成为更好的选择。
ajaxSuccess
会在每个 Ajax 请求发送时触发。而success
则只适用于单个请求。 - Rory McCrossan