Use-o sempre que tiver funções que precisam aguardar os dados retornados de suas chamadas ajax.
Defina essas funções em qualquer namespace de que você precise para acessá-las
function sendData(sendObj) {
return jQuery.ajax({
url: sendObj.url,
dataType: sendObj.dataType,
data: sendObj.data,
type: sendObj.type
//you can define as much or as few ajax settings as you want
});
}
function response(f,success,error) {
//set success function
f.success(function(returnedData){
success(returnedData);
});
//set error function
f.error(function(returnedData){
error(returnedData);
});
}
Quando você estiver pronto para chamar o servidor, defina seu sendObj e suas funções de resposta:
var sendObj ={};
sendObj.url = 'example.com/ajax.php';
sendObj.dataType = 'json';
sendObj.data = {fruit: 'apple', veggie: 'carrot'};
sendObj.type = 'POST';
var produceSuccess = function(data){
if(data) {
//It worked! Do stuff with data!
}
}
var produceError = function(data){
if(data) {
//Fail!
}
}
Então você chama suas funções assim:
callback = sendData(sendObj);
response(callback,produceSuccess,produceError);
Agora, o que quer que aconteça quando suas chamadas forem concluĂdas, os dados necessários serĂŁo aguardados – nĂŁo há necessidade de redefinir as funções ajax todas as vezes!