Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Anyone Else Interested in a New Synthesized "onReady" Event (ala JQuery)?
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  6 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
machineghost  
View profile  
 More options May 6 2008, 5:47 pm
From: machineghost <machinegh...@gmail.com>
Date: Tue, 6 May 2008 14:47:05 -0700 (PDT)
Local: Tues, May 6 2008 5:47 pm
Subject: Anyone Else Interested in a New Synthesized "onReady" Event (ala JQuery)?
Hey All,

In trying to explain why he liked jQuery, a co-worker of mine clued me
in to a fairly cool method in that library: "ready(someFunc);".  For
those who aren't familiar with jQuery, you can think of this method as
something like:
partial(connect, document, "DOMContentLoaded")

In other word, it connects the provided function to the
"DOMContentLoaded" document event.  Now, the specific jQuery syntax I
could care less about (with partial I can already make any "connect"
variant I want), but what is really cool about the function is that it
makes it really easy to use the "DOMContentLoaded" event.  And why is
that cool?

1) The "DOMContentLoaded" event fires sooner (and if you have a heavy
page, MUCH sooner) than the "onLoad" event (although you can't do
stuff that depends on the rendered DOM, like getElementDimensions,
until "onLoad" goes off).  As a result, you can get significant
performance improvements just by changing (most of) your "onLoad" code
to be "onDOMContentLoaded" code.

2) Internet Explorer doesn't support "DOMContentLoaded" :-(  Luckily
however, this guy:
http://javascript.nwbox.com/IEContentLoaded/
figured out a hack to emulate the event in IE.  When you call
"ready(someFunc)", behind the scenes JQuery handles figuring out
whether to use the hack or the real event.

Now, I don't have any desire to switch to jQuery; it has the same
basic stuff as Mochikit, but none of the wonderful advanced stuff like
partial, keys, etc.  I would however like to have access to this
"fake" event.  Am I alone in this, or would others on this list like
to see a synthesized Mochikit "DOMContentLoaded" event (similar to the
existing synthesized "onmouseenter" and "onmouseleave" events)?

If there is interest in this event I'll be happy to help write a
proper Mochikit patch, but if not I'll just steal (quick and dirty
style) the jQuery event for my own purposes.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Felipe Alcacibar B  
View profile  
 More options May 7 2008, 12:12 am
From: Felipe Alcacibar B <falcaci...@gmail.com>
Date: Tue, 6 May 2008 21:12:42 -0700 (PDT)
Local: Wed, May 7 2008 12:12 am
Subject: Re: Anyone Else Interested in a New Synthesized "onReady" Event (ala JQuery)?
MochiKit is wonderful, as you wrote ir, but is the base, you can made
too much things, but you may need read or investigate some more time
like jQuery.

I prefer call it domready, because it is when dom nodes are loaded, i
use this code to implement domready, and i not have any problem.

[code]
var __domready__ = false;
if (document.addEventListener)
        document.addEventListener("DOMContentLoaded", function() { if(!
__domready__) { __domready__ = true; window.signal(window,
'ondomready') }; }, false);

/*@cc_on @*/
/*@if (@_win32)
    document.write("<script id=__ie_onload defer
src=javascript:void(0)><\/script>");
    document.getElementById("__ie_onload").onreadystatechange =
function() {
        if (this.readyState == "complete") {
                signal(window, 'ondomready');
        }
    };
/*@end @*/

if (/WebKit/i.test(navigator.userAgent)) {
  var __domready__timer__ = setInterval(function() {
    if (/loaded|complete/.test(document.readyState)) signal(window,
'ondomready');
    clearInterval(ctimer);
  }, 10);

}

[/code]

and when i need to call them i use

[code]
connect(window, 'ondomready', function () {
      alert('now i know kung fu');

});

[/code]

Felipe Alcacibar Buccioni
Developer of systems and solutions

On 6 mayo, 17:47, machineghost <machinegh...@gmail.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Felipe Alcacibar B  
View profile  
 More options May 7 2008, 12:21 am
From: Felipe Alcacibar B <falcaci...@gmail.com>
Date: Tue, 6 May 2008 21:21:50 -0700 (PDT)
Local: Wed, May 7 2008 12:21 am
Subject: Re: Anyone Else Interested in a New Synthesized "onReady" Event (ala JQuery)?
oops, some mistake in the webkit part, sorry

[code]
if (/WebKit/i.test(navigator.userAgent)) {
  var __domready__timer__ = setInterval(function() {
    if (/loaded|complete/.test(document.readyState)) signal(window,
'ondomready');
    clearInterval(__domready__timer__);
  }, 10);
[/code]

On 7 mayo, 00:12, Felipe Alcacibar B <falcaci...@gmail.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Per Cederberg  
View profile  
 More options May 7 2008, 1:51 am
From: "Per Cederberg" <cederb...@gmail.com>
Date: Wed, 7 May 2008 07:51:01 +0200
Local: Wed, May 7 2008 1:51 am
Subject: Re: [mochikit] Re: Anyone Else Interested in a New Synthesized "onReady" Event (ala JQuery)?
I liked the "ondomready" name and structure. Looking at MSDN, they
provide the following solution instead of writing new script tags into
the document (not tested, just pasted):

document.onreadystatechange=fnStartInit;
function fnStartInit()
{
   if (document.readyState=="complete")
   {
      // Finish initialization.
   }

}

Otherwise I like the proposed solutions and vote for inclusion to
MochiKit.Signal. Never know when it might be handy.

Cheers,

/Per

On Wed, May 7, 2008 at 6:21 AM, Felipe Alcacibar B <falcaci...@gmail.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bob Ippolito  
View profile  
 More options May 7 2008, 1:58 am
From: "Bob Ippolito" <b...@redivi.com>
Date: Tue, 6 May 2008 22:58:28 -0700
Local: Wed, May 7 2008 1:58 am
Subject: Re: [mochikit] Re: Anyone Else Interested in a New Synthesized "onReady" Event (ala JQuery)?
This would definitely be convenient, it's always been on my list and
I've hacked together crappy (polling) implementations once or twice,
but I never needed it bad enough to tackle all of the cross-browser
issues myself :)


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
machineghost  
View profile  
 More options May 7 2008, 6:57 pm
From: machineghost <machinegh...@gmail.com>
Date: Wed, 7 May 2008 15:57:04 -0700 (PDT)
Local: Wed, May 7 2008 6:57 pm
Subject: Re: Anyone Else Interested in a New Synthesized "onReady" Event (ala JQuery)?
Between the feedback on this list and the feedback I got offline (one
"Oh god, yes." email) it seems that there definitely is an interest
for an "ondomready" synthesized event.  As soon as I can find the time
I'll try to combine Felipe's version (tweaked as per Per's comment)
with jQuery's (to cover any browser cases Felipe's version doesn't)
and post the result to this list.

However, I do have one concern.  It seems pretty clear that this
method is going to have to use a certain amount of browser detection
to work (well, browser detection sucks, so I'll try to implement it as
feature detection, but it will amount to the same thing).  Currently
the only browser/feature detection I know of in Mochikit is
Mochikit.Signal's hidden _browserAlreadyHasMouseEnterAndLeave function
(which doesn't actually check for either of those events; it just
checks whether the UA string has MSIE in it).

So I COULD just create a few more methods like
_browserAlreadyHasMouseEnterAndLeave to make "ondomready" work, OR I
could add "real" browser detection functionality to Mochikit.
Personally, I think the latter approach is better (it gives Mochikit
more tools, and makes any future browser-dependent coding easier), but
then again Bob et. all might have reasons for wanting to keep that
sort of thing out of Mochikit.

If there is support for "real" browser detect functions (as opposed to
hidden ones that are only used within Mochikit), I'd almost certainly
startwith PPK's browser detector:
http://www.quirksmode.org/js/detect.html

Thoughts?

Jeremy

On May 6, 10:58 pm, "Bob Ippolito" <b...@redivi.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2010 Google