问题
I'm curious to find out how a browser loads and renders a frameset. I know this may be different among different browsers. I am personally most concerned with how IE does it.
From my understanding, the browser will make one request for the page that contains the frameset. Upon rendering that page, the browser will then make a request for each individual frame's content within that frameset.
Is this correct and if so, are the requests for individual frames within the frameset done asynchronously or are the requests performed linear?
This is assuming that we are purely using HTML.
回答1:
From my understanding, the browser will make one request for the page that contains the frameset. Upon rendering that page, the browser will then make a request for each individual frame's content within that frameset.
Yes, that's basically correct.
are the requests for individual frames within the frameset done asynchronously or are the requests performed linear?
From memory (and I haven't worked with Framesets in a loooong time), it is asynchronous.
Framesets are basically an obsolete technology, and haven't really been in common use for a long time now, but I'd be very surprised if it works any differently to iframes, which are asynch.
You specifically asked about IE. For current IE versions, there really shouldn't be any major differences between IE and the other browsers.
But older IE versions (IE8 and earlier) had quite tight restrictions on the number of files they were capable of loading asynchronously. If I recally correctly, the limit was just two files at a time, or something of that order.
Given that, if you've got more than a couple of files in your frameset and you load it in an old IE version, then the answer is yes, it probably will load at least some of them linearly.
But the best advice really is to avoid framesets entirely. They are deprecated for good reasons.
来源:https://stackoverflow.com/questions/19912091/how-is-a-frameset-loaded-in-a-browser