If you're using jQuery and are doing multiple ajax calls - on a recent project there was a pyramid of doom loading in lots of templates. A cool technique to avoid this is to roll the ajax calls into a single promise.

The $.when method can take multiple promises so we can use that to pass in an array of promises by using .apply.

function all (deferredArray) {  
  var promise = $.Deferred();

  $.when.apply($, deferredArray).then(function() {
    promise.resolve('All done');
  });

  return promise;
};

all([$.ajax("/"), $.ajax("/"), $.ajax("/")])  
  .done(function(result) {
    console.log(result);
  });