Outro dia, eu tinha um código que precisava executar após um conjunto de chamadas AJAX. Claro que eu queria manter minhas chamadas assíncronas e executá-las todas de uma vez, já que não gosto de sites lentos.
A solução para este problema é bastante simples. jQuery construiu um evento chamado ajaxStop
para este propósito único. Este evento é disparado sempre que uma chamada ajax termina e nenhuma outra chamada ajax está sendo executada na página atual.
Então, sem mais delongas, o código para seu prazer de copiar / colar:
jQuery(function($)
{
$(document).ajaxStop(function()
{
// Executed when all ajax requests are done.
});
});
Se você estiver trabalhando com vários conjuntos de solicitações AJAX, pode ser útil definir uma variável antes de iniciar as solicitações AJAX e verificar se ela está definida para garantir que você não está executando suas ações após o conjunto errado de solicitações AJAX.