It has nothing to do with delays. It's because the browser is running in
Quirks Mode when you omit the DTD. Documents that don't have a document type definition are not defined to the browser as anything so they can do whatever they please with them, it's as simple as that. It does have to do with the browser, however a browser shouldn't even be required to do anything with an HTML document that doesn't have a DTD in the first place. In the case of FireFox it tries to be backwards compatible, which if anything is a luxury. I'm not saying I'm a JavaScript expert, however what I assume is the code you wrote, back in the day would have grabbed the entire documents height, however these days, in FireFox it just grabs the height of the body element "document.body", which is 0, because you have nothing in your body. Try putting the word "TEST" in your body, you'll see that it's around 20 pixels (with the DTD).
Basically what you're doing by running it without a DTD and saying "Oh but it works without the DTD" is irrelevant. Because that's not how you make web docs and you shouldn't have been making that web doc without a DTD in the first place AT ALL.
Simple Explanation for (document.body.scrollHeight):
In Quirks Mode = the height of the document.
In Standards Mode = the height of the <body> element.
Perhaps these will help you out:
https://developer.mozilla.org/en/Mozill ... ds_mode.3fhttps://developer.mozilla.org/en/Mozill ... e_Behaviorhttp://www.quirksmode.org/ (Interesting site a developer made)
Oh and BTW...
... Also out of curiosity is there any reason that it has to validate strict? Why not change to transitional and see if it validates then?
It doesn't have to validate to strict, it will work with any type of DTD. Even with: <!DOCTYPE html>, it just has to have Standards Mode activated.
There's no place like 127.0.0.1, badass part is now it's ::1