Re: waiting for the DOM

"Jim Auldridge" <[email protected]> Fri, 13 Apr 2007 06:23:07 -0400
Newsgroups gmane.comp.web.dom.wdf
Message-ID <[email protected]>
--TU-DNbqIGHufnl8yMB0y7InFFdSmiVqHlkB5Akv
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

You may not like the idea of using a library, which I can understand.
But I would look at the Yahoo User Interface Library, specifically the
Event utility which has onAvailable and onContentReady methods (
http://developer.yahoo.com/yui/event/#onavailable ).

Perhaps at the very least you can figure out what they are doing and
apply the concept.

Jim



On 4/13/07, Anders Nawroth <[email protected]> wrote:
>
>
> Edwin Martin:
> >  > delayedInit = function (id, initFunc, delay)
> >  > {
> >  > var el;
> >  > if (delay === null) delay = 10;
> >  > return function() // return anonymous function that does the job
> >  > {
> >  > if (el = document.getElementById(id))
> >  > {
> >  > initFunc(el);
> >  > }
> >  > else
> >  > {
> >  > setTimeout(arguments.callee, delay);
> >  > }
> >  > }(); // run the anonymous function at creation time
> >  > };
> >
> > I think it's the delay of 10ms that's the problem. Do you really have to
> > check 100 times per second for the element to be present? Try increasing
> > the value (to, for example, 500ms) for better performance.
> >
>
> This is not causing the problem, I have tried different values. With
> 10ms the element is usually found in the second or third iteration, so
> there should not be any big amount of work.
>
>
> /Anders
>
>
> Unsubscribe
> [email protected]
>
> List info
> http://www.quirksmode.org/dom/list.html
> Yahoo! Groups Links
>
>
>
>


-- 
Jim Auldridge
  11012 Lincoln Ave
  Hagerstown MD 21740
  301-582-9050
  http://www.auldridges.com

--TU-DNbqIGHufnl8yMB0y7InFFdSmiVqHlkB5Akv
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>

<!-- Network content -->


<body style="background-color: #ffffff;">

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="width:655px; position:relative;">
  <div id="ygrp-msg" style="width: 490px; padding: 0 15px 0 0; float:left;  z-index:1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id="ygrp-text">
            <p>You may not like the idea of using a library, which I can understand.<br>
But I would look at the Yahoo User Interface Library, specifically the<br>
Event utility which has onAvailable and onContentReady methods (<br>
<a href="http://developer.yahoo.com/yui/event/#onavailable">http://developer.<wbr>yahoo.com/<wbr>yui/event/<wbr>#onavailable</a> ).<br>
<br>
Perhaps at the very least you can figure out what they are doing and<br>
apply the concept.<br>
<br>
Jim<br>
<br>
On 4/13/07, Anders Nawroth &lt;<a href="mailto:lists%40nawroth.com">lists@nawroth.<wbr>com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; Edwin Martin:<br>
&gt; &gt;  &gt; delayedInit = function (id, initFunc, delay)<br>
&gt; &gt;  &gt; {<br>
&gt; &gt;  &gt; var el;<br>
&gt; &gt;  &gt; if (delay === null) delay = 10;<br>
&gt; &gt;  &gt; return function() // return anonymous function that does the job<br>
&gt; &gt;  &gt; {<br>
&gt; &gt;  &gt; if (el = document.getElement<wbr>ById(id))<br>
&gt; &gt;  &gt; {<br>
&gt; &gt;  &gt; initFunc(el)<wbr>;<br>
&gt; &gt;  &gt; }<br>
&gt; &gt;  &gt; else<br>
&gt; &gt;  &gt; {<br>
&gt; &gt;  &gt; setTimeout(argument<wbr>s.callee, delay);<br>
&gt; &gt;  &gt; }<br>
&gt; &gt;  &gt; }(); // run the anonymous function at creation time<br>
&gt; &gt;  &gt; };<br>
&gt; &gt;<br>
&gt; &gt; I think it's the delay of 10ms that's the problem. Do you really have to<br>
&gt; &gt; check 100 times per second for the element to be present? Try increasing<br>
&gt; &gt; the value (to, for example, 500ms) for better performance.<br>
&gt; &gt;<br>
&gt;<br>
&gt; This is not causing the problem, I have tried different values. With<br>
&gt; 10ms the element is usually found in the second or third iteration, so<br>
&gt; there should not be any big amount of work.<br>
&gt;<br>
&gt;<br>
&gt; /Anders<br>
&gt;<br>
&gt;<br>
&gt; Unsubscribe<br>
&gt; <a href="mailto:wdf-dom-unsubscribe%40egroups.com">wdf-dom-unsubscribe<wbr>@egroups.<wbr>com</a><br>
&gt;<br>
&gt; List info<br>
&gt; <a href="http://www.quirksmode.org/dom/list.html">http://www.quirksmo<wbr>de.org/dom/<wbr>list.html</a><br>
&gt; Yahoo! Groups Links<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
-- <br>
Jim Auldridge<br>
  11012 Lincoln Ave<br>
  Hagerstown MD 21740<br>
  301-582-9050<br>
  <a href="http://www.auldridges.com">http://www.auldridg<wbr>es.com</a><br>
</p>
    </div>  

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <span width="1" style="color: white;">__._,_.___</span>
    <!-- Start the section with Message In topic -->
    <div id="ygrp-actbar">
              <span class="left">
          <a href="http://groups.yahoo.com/group/wdf-dom/message/5589;_ylc=X3oDMTM0bWdldDhvBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBG1zZ0lkAzU1OTIEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMTc2NDU5ODg2BHRwY0lkAzU1ODk-">
            Messages in this topic          </a> (<span class="bld">0</span>)
        </span>
        <a href="http://groups.yahoo.com/group/wdf-dom/post;_ylc=X3oDMTJwcHZlZGs4BF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBG1zZ0lkAzU1OTIEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMTc2NDU5ODg2?act=reply&messageNum=5592">
          <span class="bld">
            Reply          </span> (via web post)
        </a>  | 
        <a href="http://groups.yahoo.com/group/wdf-dom/post;_ylc=X3oDMTJldnM1bzVtBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTE3NjQ1OTg4Ng--" class="bld">
          Start a new topic        </a>
          </div> 
    <!-------     Start Nav Bar  ------>
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-vitnav">
                <a href="http://groups.yahoo.com/group/wdf-dom/messages;_ylc=X3oDMTJlOGxnODYxBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA21zZ3MEc3RpbWUDMTE3NjQ1OTg4Ng--">Messages</a>  
        
        
        
        
        
        
        
    </div>  
    <!-- |**|end egp html banner|**| -->

    <!-- Do not have place to put it yet -->
    <div id="ygrp-grft">
              

          </div>

    <!-- yahoo logo -->
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-ft">
      <a href="http://groups.yahoo.com/;_ylc=X3oDMTJkOGU0bjRyBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMTc2NDU5ODg2">
      <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_160.gif" height="15" width="106" border="0" alt="Yahoo! Groups"></a> <br>
      <a href="http://groups.yahoo.com/group/wdf-dom/join;_ylc=X3oDMTJma2djbWNnBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA3N0bmdzBHN0aW1lAzExNzY0NTk4ODY-">Change settings via the Web</a> (Yahoo! ID required) <br>
      Change settings via email: <a href="mailto:[email protected]?subject=Email Delivery: Digest">Switch delivery to Daily Digest</a> | <a href = "mailto:[email protected]?subject=Change Delivery Format: Traditional">Switch format to Traditional</a> <br>

      <a href="http://groups.yahoo.com/group/wdf-dom;_ylc=X3oDMTJkdDhzNTBrBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA2hwZgRzdGltZQMxMTc2NDU5ODg2">
        Visit Your Group 
      </a> |
      <a href="http://docs.yahoo.com/info/terms/">
        Yahoo! Groups Terms of Use      </a> |
      <a href="mailto:[email protected]?subject=">
        Unsubscribe      </a> 
    </div>     <!-- |**|end egp html banner|**| -->
  </div> <!-- ygrp-msg -->

  
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id="ygrp-sponsor" style="width:140px;float: left; clear: none; margin-left: 5px; background:white; margin-bottom:25px ;position:absolute; top:0; right: 0;">
    <!-- Network content -->
    
    <!-- Start vitality -->
    <div id="ygrp-vital">
              <div id="vithd">Recent Activity</div>
        <ul style="list-style-type:none; padding: 0; margin: 2px 0;">
                <li style="clear: both;">
      <div class="ct" style="float: right;"><span style="display:none">&nbsp;</span>7</div>
      <div class="cat"><a href="http://groups.yahoo.com/group/wdf-dom/members;_ylc=X3oDMTJmbGRzNTdkBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzExNzY0NTk4ODY-">New Members</a></div>
    </li>
  
            
            
            
            
            
        </ul>
            <a href="http://groups.yahoo.com/group/wdf-dom;_ylc=X3oDMTJlZHEzMmxnBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTE3NjQ1OTg4Ng--">
        Visit Your Group      </a>
    </div> 
                <div id="hd">SPONSORED LINKS</div>
      <div id="ov">
        <ul>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjaTM3cmdtBF9TAzk3MzU5NzE0BF9wAzEEZ3JwSWQDMjU2NDU2MwRncnBzcElkAzE3MDUwMTYwNjEEc2VjA3NsbW9kBHN0aW1lAzExNzY0NTk4ODY-?t=ms&k=Dom+perignon&w1=Dom+perignon&w2=Dom+pedro+lisboa&w3=Dom+pedro+lisboa+hotel&w4=Dom+henrique+hotel&w5=Dom+pedro+hotel&c=5&s=113&g=2&.sig=WWEKoFu9o5Bxb7jvKiowcw">Dom perignon</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjMnZpY2JnBF9TAzk3MzU5NzE0BF9wAzIEZ3JwSWQDMjU2NDU2MwRncnBzcElkAzE3MDUwMTYwNjEEc2VjA3NsbW9kBHN0aW1lAzExNzY0NTk4ODY-?t=ms&k=Dom+pedro+lisboa&w1=Dom+perignon&w2=Dom+pedro+lisboa&w3=Dom+pedro+lisboa+hotel&w4=Dom+henrique+hotel&w5=Dom+pedro+hotel&c=5&s=113&g=2&.sig=SX1uIQiq6MaAcniDtSkcsg">Dom pedro lisboa</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjMnM5OTJqBF9TAzk3MzU5NzE0BF9wAzMEZ3JwSWQDMjU2NDU2MwRncnBzcElkAzE3MDUwMTYwNjEEc2VjA3NsbW9kBHN0aW1lAzExNzY0NTk4ODY-?t=ms&k=Dom+pedro+lisboa+hotel&w1=Dom+perignon&w2=Dom+pedro+lisboa&w3=Dom+pedro+lisboa+hotel&w4=Dom+henrique+hotel&w5=Dom+pedro+hotel&c=5&s=113&g=2&.sig=guNaksJ68_6B0OiXpwey1w">Dom pedro lisboa hotel</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjN2IzcnByBF9TAzk3MzU5NzE0BF9wAzQEZ3JwSWQDMjU2NDU2MwRncnBzcElkAzE3MDUwMTYwNjEEc2VjA3NsbW9kBHN0aW1lAzExNzY0NTk4ODY-?t=ms&k=Dom+henrique+hotel&w1=Dom+perignon&w2=Dom+pedro+lisboa&w3=Dom+pedro+lisboa+hotel&w4=Dom+henrique+hotel&w5=Dom+pedro+hotel&c=5&s=113&g=2&.sig=QGH9qb7jsBAkFrK0-a_YNg">Dom henrique hotel</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjaGJjNGtvBF9TAzk3MzU5NzE0BF9wAzUEZ3JwSWQDMjU2NDU2MwRncnBzcElkAzE3MDUwMTYwNjEEc2VjA3NsbW9kBHN0aW1lAzExNzY0NTk4ODY-?t=ms&k=Dom+pedro+hotel&w1=Dom+perignon&w2=Dom+pedro+lisboa&w3=Dom+pedro+lisboa+hotel&w4=Dom+henrique+hotel&w5=Dom+pedro+hotel&c=5&s=113&g=2&.sig=lzPOttQs63hr5OcSewgvGQ">Dom pedro hotel</a></li>
                  </ul>
      </div>
              
    <!-- Network content -->
              <div id="nc">
              <div class="ad">
                      <div id="hd1">Yahoo! Photos</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12i1r4igs/M=493064.9803230.10510224.8674578/D=groups/S=1705016061:NC/Y=YAHOO/EXP=1176467086/A=3848637/R=0/SIG=10p8tommg/*http://photos.yahoo.com">Share Your Photos</a></p> 
<p>via email & mobile</p>                  </div>
                    <div class="ad">
                      <div id="hd1">Y! GeoCities</div>
<p><a href="http://us.ard.yahoo.com/SIG=12iklgnnh/M=493064.9803219.10510212.8674578/D=groups/S=1705016061:NC/Y=YAHOO/EXP=1176467086/A=3848530/R=0/SIG=11vts2tqq/*http://us.rd.yahoo.com/evt=42416/*http://geocities.yahoo.com/">Share Your Resume</a></p>
<p>Show off your</p>
<p>talent and skills.</p>                  </div>
                    <div class="ad">
                        <div id="hd1">Yahoo! Groups</div>
  <p><a href="http://groups.yahoo.com/start;_ylc=X3oDMTJvZjVxNDRrBF9TAzk3MzU5NzE0BF9wAzMEZ3JwSWQDMjU2NDU2MwRncnBzcElkAzE3MDUwMTYwNjEEc2VjA25jbW9kBHNsawNncm91cHMyBHN0aW1lAzExNzY0NTk4ODY-">Start a group</a></p>
  <p>in 3 easy steps.</p>
  <p>Connect with others.</p>
                  </div>
          </div>
    
  </div>   <!-- |**|end egp html banner|**| -->
  <div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>   <img src="http://geo.yahoo.com/serv?s=97359714/grpId=2564563/grpspId=1705016061/msgId=5592/stime=1176459886/nc1=3848637/nc2=3848530/nc3=3" width="1" height="1"> <br>

<span  style="color: white;">__,_._,___</span>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mlmsg {font-size:13px; font-family: arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;*font-size:100%;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
    font-family: Georgia;	
}
#ygrp-text p{
    margin: 0 0 1em 0;
}
#ygrp-tpmsgs{
    font-family: Arial;	
    clear: both;
}
#ygrp-vitnav{
	padding-top: 10px;
	font-family: Verdana;
	font-size: 77%;
	margin: 0;
}
#ygrp-vitnav a{
	padding: 0 1px;
}
#ygrp-actbar{
	clear: both;
	margin: 25px 0;
	white-space:nowrap;
	color: #666;
	text-align: right;
}
#ygrp-actbar .left{
	float: left;
	white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
	font-family: Verdana;
	font-size: 77%;
	padding: 15px 0;
}
#ygrp-ft{
  font-family: verdana;
  font-size: 77%;
  border-top: 1px solid #666; 
  padding: 5px 0; 
}
#ygrp-mlmsg #logo{
  padding-bottom: 10px;
}

#ygrp-vital{
	background-color: #e0ecee;
	margin-bottom: 20px;
	padding: 2px 0 8px 8px;
}
#ygrp-vital #vithd{
	font-size: 77%;
	font-family: Verdana;
	font-weight: bold;
	color: #333;
	text-transform: uppercase;
}
#ygrp-vital ul{
	padding: 0;
	margin: 2px 0;
}
#ygrp-vital ul li{
  list-style-type: none;
  clear: both;
  border: 1px solid #e0ecee;  
}
#ygrp-vital ul li .ct{
  font-weight: bold;
  color: #ff7900;
  float: right;
  width: 2em;
  text-align:right;
  padding-right: .5em;
}
#ygrp-vital ul li .cat{
  font-weight: bold;
}
#ygrp-vital a {
	text-decoration: none;
}

#ygrp-vital a:hover{
  text-decoration: underline;
}

#ygrp-sponsor #hd{
	color: #999;
	font-size: 77%;
}
#ygrp-sponsor #ov{
	padding: 6px 13px;
	background-color: #e0ecee;
	margin-bottom: 20px;
}
#ygrp-sponsor #ov ul{
	padding: 0 0 0 8px;
	margin: 0;
}
#ygrp-sponsor #ov li{
	list-style-type: square;
	padding: 6px 0;
	font-size: 77%;
}
#ygrp-sponsor #ov li a{
	text-decoration: none;
	font-size: 130%;
}
#ygrp-sponsor #nc {
  background-color: #eee;
  margin-bottom: 20px;
  padding: 0 8px;
}
#ygrp-sponsor .ad{
	padding: 8px 0;
}
#ygrp-sponsor .ad #hd1{
	font-family: Arial;
	font-weight: bold;
	color: #628c2a;
	font-size: 100%;
	line-height: 122%;
}
#ygrp-sponsor .ad a{
	text-decoration: none;
}
#ygrp-sponsor .ad a:hover{
	text-decoration: underline;
}
#ygrp-sponsor .ad p{
	margin: 0;
}
o {font-size: 0; }
.MsoNormal {
   margin: 0 0 0 0;
}
#ygrp-text tt{
  font-size: 120%;
}
blockquote{margin: 0 0 0 4px;}
.replbq {margin:4}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html><!--End group email -->


--TU-DNbqIGHufnl8yMB0y7InFFdSmiVqHlkB5Akv--