Typing while in preview mode would occasionally lead to a scrolling
glitch, where scroll would briefly be at 0, before jumping to the
location it was supposed to be in in the first case.
This happened due to the async nature of JS calls, in the following
scenario:
1. Load
2. Read started
3. Read finished
4. Read started
5. Load
6. Read finished
The results from op 4 would be invalid due to loading in-between, and
handling the result in 6 would set the wrong scroll value.
This change ensures results are discarded whenever we are waiting for
them and a new load starts.