Понимание событий jQuery AJAX-успех и ajaxSuccess
нужна помощь в понимании разницы между success
и ajaxSuccess
события задокументированы здесь.
success
- это локальное событие, а ajaxSuccess
является глобальным событием. Я понимаю разницу между локальной и глобальной переменной, но у меня возникли некоторые проблемы с пониманием концепции области событий.
Каковы некоторые примеры сценариев, в которых один был бы предпочтительнее другого?
2 ответов
вы можете использовать глобальные события, такие как:
$.ajaxSuccess(function(){
//do my global thing here
});
поскольку глобальное событие будет срабатывать для каждого успеха вызова ajax, а не только для одного.
но
success: function(){/* do local here */});
только срабатывает в локальной функции вызова ajax как частный объект этого.
Примечание
$.ajaxComplete(function(){ });
может быть то, что вы после того, как он срабатывает на полном - С или без ошибки.
EDIT: специальное примечание локального success:
в ajaxSetup глобальный: (это не рекомендуется, и вы должны использовать $.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()
лучше, так как это событие вызывается только в случае успешного выполнения запроса. Он проверяет ошибки с сервера и ошибки с данными делают его лучшим.