2014-03-22 3 views
0

Я работаю над мобильным приложением, которое использует jQuery и BackboneJS. Большинство вызовов ajax выполняются с использованием встроенной функции jQuery $.ajax, а некоторые выполняются с использованием функций Backbone fetch() и save(). Теперь я понимаю, что Backbone тоже на низком уровне вызывает функцию jQuery $.ajax для запросов xhr. Я хочу знать, как я могу выполнить некоторые вычисления в моем ответе (полученные от вызовов ajax) до фактического вызова обработчика успеха?Как вызвать пользовательскую функцию перед вызовом jquery ajax?

Так что я хочу знать, есть ли способ расширить функцию jquery, чтобы он выполнял пользовательский код, который я хочу, прежде чем вызывать обработчик успеха ajax?

+0

Используйте функцию обратного вызова успеха, с этой точки выполнение синхронно, и вы можете вернуть значение false, если вы не хотите продолжать. – slash197

+0

Нет. Думаю, я не мог понять. Я хочу выполнить некоторую функцию в своем ответе, вызвана ли она с помощью метода '$ .ajax' или Backbone' fetch' и 'save'. Если я использую обработчик успеха, тогда мне придется отредактировать весь мой код, чтобы запустить эту функцию в каждом обработчике успеха. Это не то, что я хочу сделать. –

ответ

0

Использовать глобальный Ajax событие: http://api.jquery.com/Ajax_Events/

$(document).bind("ajaxSuccess", function(){ 
// code here 
}).bind("ajaxComplete", function(){ 
// code here 
}); 

Однако, я не уверен насчет того случая, я не нашел вас старшинство события между локальными и глобальными обработчиками.

+0

Смотрите, дело в том, что я не могу обрабатывать все свои события, используя глобальный обработчик успеха ajax, как вы показываете. И писать пользовательский обработчик для каждого запроса также не очень хорошая идея. Поэтому я надеялся найти способ расширить функциональные возможности jquery таким образом, что он обрабатывает ответ xhr так, как я хочу, а затем вызываю соответствующие обработчики успешности, как это обычно бывает. Я чист? Потому что я не думаю, что делаю хорошую работу, объясняя, что хочу. –

+0

Я думаю, что я вас понимаю, но вы можете смешивать глобальные и локальные обработчики, то есть использовать локальный обработчик для «локальной» задачи и глобальный для «общих» задач, которые нужно выполнять каждый раз – Roberto

Смежные вопросы