title: Reuse jQuery.post() / jQuery.Deferred() object
body: <p>the simplest example of what I'm looking for is this:</p>
  
  <pre><code>var messageLoader = $.post("api/user/messages", {api:data})
  
  messageLoader.done(function(data){
     //do something 
  });
  </code></pre>
  
  <p>This works brilliantly, but only once.  If I want to update the data, I have to redefine everything.</p>
  
  <p>I can't seem to find any call for the Deferred Object that let's me restart it.  i.e. <code>messageLoader.redo()</code>, which ideally would re-do the POST request, and subsequently call the same "done" handler without me having to re-define it.</p>
  
  <p>I could put it all in a function and simply call that function again, but that's not what I'm looking for, because I would further want to do this:</p>
  
  <pre><code>var messageLoader = $.post("api/user/messages", {api:data})
  var friendRequestLoader = $.post("api/user/friendrequests", {api:data})
  
  $.when(messagesLoader, friendRequestLoader)
      .done(function (messages, friendRequests) {
          // update display of messages and friend requests
          // attach Handlers
      });
  
  $("#updateMessages").click(function(){
      messageLoader.redo() // This doesn't exist
  })
  </code></pre>
  
  <p>The idea is that clicking <code>$("#updateMessages")</code> would re-do just that request, then the <code>$.when()</code> handler would use the new <code>messageLoader</code> data, and the original <code>friendRequestLoader</code> data.</p>
  
  <p>I've looked in the docs for something like this but haven't found anything.  Perhaps someone here knows if it exists, or a way to accomplish the same thing.</p>