jQuery: The Write Less, Do More JavaScript Library

Re: Implementation of DOMContentLoaded failing when no assets

by Diego Perini :: Rate this Message:

Reply to Author | View in Thread



Here is a small test that should output this sequence:

* readystatechange
* iecontentloaded
* load

both in the body and in the window status bar (if enabled).

The results with current jQuery and no assets is instead:

* readystatechange
* load
* iecontentloaded

thus the "onload" function fires before the ".ready()" method.

Substitute square brackets with angle brackets in this code:

[script type="text/javascript" src="jquery-1.2.3.js.orig"][/script]
[script type="text/javascript"]
/* IEContentLoaded test (jQuery implementation) */
$(document).ready(function () {
    document.body.innerHTML += ' * iecontentloaded[br /]';
    status += ' * iecontentloaded';
});
/* Event "onready..." still available to applications */
document.onreadystatechange = function () {
    if (this.readyState == 'complete') {
        document.body.innerHTML += ' * ' + event.type + '[br /]';
        status += ' * ' + event.type;
    }
};
/* Event "onload" still available to applications */
window.onload = function () {
    document.body.innerHTML += ' * ' + event.type + '[br /]';
    status += ' * ' + event.type;
};
[/script]

I already know where the problem lies, I only have to setup
a patch for current code, hopefully including also the other
expected behavior of ".ready()" being called by default
at startup. This is for the "Lazy Loading" approach to
work consistently (want to use "isReady()" later on).


Diego Perini


On 20 Mar, 19:35, Diego Perini <diego.per...@...> wrote:

> This is only an IE problem.
>
> The "onload" event always fire before the "ready()" method in IE
> when there are no assets (images/objects/styles) in the page.
>
> I already new the implementation of IEContentLoaded in jQuery
> was not complete, but I was told that the "onload" fall back will
> always be a last resort solution so there would not have been
> problems, the correct firing would have taken care of anyway.
>
> I need to setup some more test to show the exact problem,
> then I will submit the needed patch for this eventuality.
>
> This may be somehow related to the problem posted in this group
> about lazy loading jQuery. If the user does not setup a "ready()"
> wrapped function, isReady will never become true.
> I should reread that post though.
>
> Diego Perini
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "jQuery Development" group.
To post to this group, send email to jquery-dev@...
To unsubscribe from this group, send email to jquery-dev-unsubscribe@...
For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

 « Return to Thread: Implementation of DOMContentLoaded failing when no assets