The purpose of this page is to experiment with the deferred object. Buttons 1-3 are deferred. The first time each button is clicked a function that populates a deferred object. If the deferred promise has already been fulfilled then there is no reason to run the function. If the deferred promise has not been fulfilled then it is executed.
Notice that the first time you click a button you get an alert that explains that the data is being downloaded followed by a second alert a few seconds later. The second time the button is clicked you just get the second alert.