puoi provare ad usare i deferred object visto che le chiamate ajax di jquery ritornano una promise
codice:/* mostra loader */ $.getJSON("url") .done(function() { /* nascondi loader */ /* fai qualcosa */ }) .fail(function() { /* errore, fai qualcos'altro */ })