Понимание событий 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() лучше, так как это событие вызывается только в случае успешного выполнения запроса. Он проверяет ошибки с сервера и ошибки с данными делают его лучшим.