Basically, bash executes the script line by line as it is downloading - pausing the download while that line executes. By sending a sleep() command early in the script you can detect the delay in the next line beind downloaded.
Its a lot more complicated due to TCP buffers and trying to hide output from the user.
Original article below. It is giving me a certificate error though but its available through archives or a cache.