If you would use
Response.Write
from your code then, the behaviour would be same just as you described above. The background will be blank and will not be rendered until you click OK on the alert box. Usually what I do in these scenarios is that I keep a asp Label & a asp image control at a fixed location on the page whose text is set to blank. The advantage is that I use the same label for information, warning, & error. For ex, if an error occurs, I will display the error icon for the image and the message will be displayed in the label. Similarly, for information & warning you can use different icons to notify the user. And since it's just a asp Label, it will not stop the rendering of your page.
Alternatively, you can also use ajax, if you want to persist to the browser's window for information. I personally, prefer the former approach.