While working on an ASP.NET application today I noticed that after asynchronous ajax requests my page would have gap where when the page initially loaded it did not. I checked the pages source and noted that a hidden input field was declared precisely where the gap was occuring.

I moved the hidden input field to the end of the pages source and the gap went away permanently.