[Javascript] Onload event handlers for Safari
Nick Fitzsimons
nick at nickfitz.co.uk
Tue Aug 29 11:12:23 CDT 2006
On 29 Aug 2006, at 16:46, Guillaume wrote:
> I've come across this link apparently solving a long time problem
> with onload event handlers for Safari...
>
> Reading articles about the onload event handlers for Safari, it
> seems this browser behaves differently than Ie and Mozilla...
> Here's a ressource that might help us on Den Edwards's site in an
> article called: window.onload (again)
> http://dean.edwards.name/weblog/2006/06/again/
>
Safari handles onload perfectly well. Dean's article is about a
different problem: the fact that, in _all_ browsers, onload only
fires after all of the contents of the page have loaded. This means
that, if (for example) you have images on a page, the onload event
only fires when all of the images have been downloaded, which can
take a while if there are lots of them, they are very large, or the
user is on a slow connection.
If you are using unobtrusive JavaScript to attach event handlers to
elements on the page when the onload event fires, it is thus possible
that the user will try to interact with the page before the onload
event has fired, which is before your user interface has been activated.
What Dean's (and others') technique does is allow one to start one's
script when the page has been _parsed_ into a DOM, which is not the
same thing as when it has _loaded_. This means that (assuming you
don't try to do too much) you can get all your initialisation in
place before the page is displayed to the user, and long before the
onload event fires.
It's a useful technique which handles one of the most important
problems in DOM scripting (in fact, we discussed it at some length
over a year ago at a get-together in London [1] which led to the
founding of the Web Standards Project's DOM Scripting Task Force
[2]). But it shouldn't be confused with onload event handling,
despite Dean's title; it's to do with the DOMContentLoaded event, to
use the Mozilla name for it, and how that can be emulated in IE and
Safari.
Footnotes:
[1] <http://www.nickfitz.co.uk/2005/06/13/javascript-get-together-
london-2005-06-11/>
[2] <http://webstandards.org/action/dstf/>
Cheers,
Nick.
--
Nick Fitzsimons
http://www.nickfitz.co.uk/
More information about the Javascript
mailing list