That's what I suspected: in that case I prefer to have all my CSS just
loaded as usual, and add the .js class to the body element on
domready.

Michal.

On Jan 8, 1:40 pm, "Thierry bela nanga" <[email protected]> wrote:
> you have to use domready otherwise you'll get errors
>
> and once again it is quite easy to inject css in the head
>
> external stylesheet
> ---------------------------
>
> var e = document.createElement('LINK');
>                         e.href = css;
>                         e.rel = "stylesheet";
>                         e.type = 'text/css';
>                         document.head.appendChild(e);
>
> inline stylesheet
> ------------------------
>
>                             var e = document.createElement('STYLE');
>                             e.type = 'text/css';
>                             document.head.appendChild(e);
>
>                             //inline stylesheet
>                             if(window.ie) e.styleSheet.cssText =
> styledeclaration;
>                             else
> e.appendChild(document.createTextNode(styledeclaration));
>
> On Thu, Jan 8, 2009 at 1:41 PM, Michal <[email protected]> wrote:
>
> > I think I was talking about including CSS, and not Javascript in the
> > head, but I guess the same/similar method can be applied.
>
> > I wonder, is it ok to access the head element, via document.head or
> > Assets, before it has has even fully loaded? The point of my hack was
> > to include extra CSS *before* the DOM has loaded, so there is no
> > chance of any flash of content.
>
> > Michal.
>
> > On Jan 8, 11:40 am, "Thierry bela nanga" <[email protected]> wrote:
> > > anyway,
>
> > > your idea is not bad, i'll take a look at it.
>
> > > loading js is quite simple
>
> > >                         var e = document.createElement('SCRIPT');
> > >                         e.src = js;
> > >                         e.type = 'text/javascript';
>
> > >                         //I don't think this has an effect
> > >                         if(defer) e.defer = true;
>
> > >                         document.head.appendChild(e);
>
> > > or you may use mootools Assets class.
>
> > > On Thu, Jan 8, 2009 at 12:28 PM, Thierry bela nanga <[email protected]
> > >wrote:
>
> > > > if you request js with ajax and eval it, if there is a document.write,
>
> > > > the content of your page will be replaced by what you write.
>
> > > > On Thu, Jan 8, 2009 at 12:22 PM, Michal <[email protected]>
> > wrote:
>
> > > >> I completely agree that document.write is bad (that's why I called it
> > > >> a hackish method), but I'm unfamiliar with your reason about the blank
> > > >> page, can you explain?
>
> > > >> Michal.
>
> > > >> On Jan 8, 10:42 am, "Thierry bela nanga" <[email protected]> wrote:
> > > >> > using *document.write* is bad and should be avoided when you use
> > ajax,
>
> > > >> > you may have a blank page when you evaluate an expression after the
> > page
> > > >> has
> > > >> > been loaded.
>
> > > >> > instead you should use dom manipulation to load your js file.
>
> > > >> > On Thu, Jan 8, 2009 at 11:37 AM, Michal <[email protected]>
> > > >> wrote:
>
> > > >> > > If it's ok for me to chime in. I use a way to minimize flashing
> > (which
> > > >> > > I use and like), and a bit of hack to completely remove flashing
> > > >> > > (which I have used in the past, but I think no more). Both of
> > these
> > > >> > > leave content accessible to search engines and users without
> > > >> > > Javascript.
>
> > > >> > > To minimize flashing:
> > > >> > > - In the CSS, create rules starting with ".js" that hide all your
> > > >> > > content that you want hidden if JS active
> > > >> > > - On domready, add the class .js to the body element. If this is
> > the
> > > >> > > first domready listener, this should minimize flashing.
>
> > > >> > > To completely remove flashing:
> > > >> > > - Has a CSS file with style that hides the content you want
> > hidden,
> > > >> > > but *don't* put this in your page.
> > > >> > > - Instead, in the head section of your page, include a Javascript
> > file
> > > >> > > that uses document.write that writes the link tag to the page.
> > This is
> > > >> > > hackish, and won't work if the page is sent as
> > application/xhtml+xml.
>
> > > >> > > By the way neither of these methods are mine, but I forget where I
> > saw
> > > >> > > them.
>
> > > >> > > Michal.
>
> > > >> > > On Jan 8, 9:46 am, "Thierry bela nanga" <[email protected]> wrote:
> > > >> > > > I had to make a choice,
>
> > > >> > > > All the content is present on the page and is available to
> > search
> > > >> bot,
> > > >> > > but
> > > >> > > > some parts are hidden to avoid flashing and they are displayed
> > by
> > > >> > > removing
> > > >> > > > the .hidden class.
>
> > > >> > > > On Wed, Jan 7, 2009 at 11:07 PM, CroNiX <[email protected]>
> > > >> wrote:
>
> > > >> > > > > You care if your site content is available to search bots but
> > not
> > > >> > > > > visitors?  Strange...
>
> > > >> > > > > On Jan 7, 6:55 am, "Thierry bela nanga" <[email protected]>
> > wrote:
> > > >> > > > > > yeah but,
>
> > > >> > > > > > I use JS to build the page (tabs, etc), without it you'll
> > have
> > > >> an
> > > >> > > ugly
> > > >> > > > > > content. the content remain available for search bots that's
> > the
> > > >> most
> > > >> > > > > > important for me.
>
> > > >> > > > > > On Wed, Jan 7, 2009 at 3:47 PM, Guillermo Rauch <
> > > >> [email protected]>
> > > >> > > > > wrote:
> > > >> > > > > > > Which makes the content unavailable for people with CSS on
> > but
> > > >> JS
> > > >> > > off.
>
> > > >> > > > > > > On Wed, Jan 7, 2009 at 12:39 PM, Thierry bela nanga <
> > > >> > > [email protected]
> > > >> > > > > >wrote:
>
> > > >> > > > > > >> my method to avoid this is to hide content initially with
> > > >> css, i
> > > >> > > > > define a
> > > >> > > > > > >> class .hidden {display: none} and then I use the domready
> > to
> > > >> > > remove
> > > >> > > > > the the
> > > >> > > > > > >> class.
>
> > > >> > > > > > >> On Wed, Jan 7, 2009 at 3:01 PM, keif <
> > [email protected]>
> > > >> > > wrote:
>
> > > >> > > > > > >>> FUC = Flash of Unstyled/Unrendered Content
>
> > > >> > > > > > >>> This cropped up mainly because of an alphaPNG script,
> > > >> extended
> > > >> > > > > > >>> elements script, and a couple other scripts that modifed
> > the
> > > >> > > page.
>
> > > >> > > > > > >>> On Jan 5, 7:46 am, Michal <[email protected]>
> > wrote:
> > > >> > > > > > >>> > FUC?? I think maybe I'm not that good with those
> > internet
> > > >> > > > > acronyms....
>
> > > >> > > > > > >>> > On Jan 5, 12:32 pm, keif <[email protected]>
> > wrote:
>
> > > >> > > > > > >>> > > With putting scripts at the bottom, it's been more
> > of a
> > > >> > > "YMMV"
> > > >> > > > > > >>> > > approach - I can't find the yahoo article, but it's
> > been
> > > >> > > > > discussed
> > > >> > > > > > >>> > > more than once that many people say "put it in the
> > > >> footer"
> > > >> > > when
> > > >> > > > > it's
> > > >> > > > > > >>> > > not a practice they follow themselves because of
> > certain
> > > >> > > issues
> > > >> > > > > (one
> > > >> > > > > > >>> > > thing I've noticed, loading all JS in the footer
> > causes
> > > >> FUC
> > > >> > > > > > >>> > > sometimes).
>
> > > >> > > > > > >>> > > -keif
>
> > > >> > > > > > >>> > > On Jan 5, 5:38 am, Nicolas Trani <
> > [email protected]>
> > > >> wrote:
>
> > > >> > > > > > >>> > > > Hi,
>
> > > >> > > > > > >>> > > > @Michal :
> > > >> > > > > > >>> > > > Putting scripts at bottom speed up your page
> > loading,
> > > >> i
> > > >> > > suggest
> > > >> > > > > you
> > > >> > > > > > >>> to
> > > >> > > > > > >>> > > > read this :
>
> >http://developer.yahoo.com/performance/rules.html#js_bottom
>
> > > >> > > > > > >>> > > > @Wanlee :
> > > >> > > > > > >>> > > > I suggest you to continue to use domready anyway.
>
> > > >> > > > > > >>> > > > Maye be you can post a page to show your code?
>
> > > >> > > > > > >>> > > > Regards.
>
> > > >> > > > > > >>> > > > Michal a écrit :
>
> > > >> > > > > > >>> > > > > Are you saying that 'domready' fires too early,
> > > >> before
> > > >> > > the
> > > >> > > > > html
> > > >> > > > > > >>> is
> > > >> > > > > > >>> > > > > ready? This sounds strange. It could be:
>
> > > >> > > > > > >>> > > > > - A bug with domready. I suspect this is
> > unlikely as
> > > >> this
> > > >> > > is
> > > >> > > > > so
> > > >> > > > > > >>> > > > > heavily used and tested. But if you can
> > construct a
> > > >> > > testcase,
> > > >> > > > > > >>> post a
> > > >> > > > > > >>> > > > > bug in lighthouse.
> > > >> > > > > > >>> > > > > - A bug with your code somewhere: are you sure
> > > >> everything
> > > >> > > > > that
> > > >> > > > > > >>> > > > > accesses the DOM is inside a domready listener?
>
> > > >> > > > > > >>> > > > > I have seen advice somewhere on the internet
> > that
> > > >> says
> > > >> > > you
> > > >> > > > > should
> > > >> > > > > > >>> put
> > > >> > > > > > >>> > > > > Javascript at the bottom of the html, but it's
> > never
> > > >> > > quite
> > > >> > > > > sat
> > > >> > > > > > >>> well
> > > >> > > > > > >>> > > > > with me, it seems a bit hackish, but I don't
> > quite
> > > >> know
> > > >> > > why.
> > > >> > > > > I
> > > >> > > > > > >>> always
> > > >> > > > > > >>> > > > > put it in the head, with a domready. Maybe
> > others
> > > >> have
> > > >> > > other
> > > >> > > > > > >>> > > > > suggestions...
>
> > > >> > > > > > >>> > > > > There is the 'load' event, that waits for all
> > images
> > > >> to
> > > >> > > load
> > > >> > > > > as
> > > >> > > > > > >>> well,
> > > >> > > > > > >>> > > > > you could try that, but I suspect that there is
> > > >> something
> > > >> > > > > else
> > > >> > > > > > >>> afoot.
>
> > > >> > > > > > >>> > > > > Can you post a link to the page you're talking
> > > >> about?
>
> > > >> > > > > > >>> > > > > Michal.
>
> > > >> > > > > > >>> > > > > On Jan 5, 8:32 am, wanlee <
> > [email protected]>
> > > >> > > wrote:
>
> > > >> > > > > > >>> > > > >> I'm writing a few functions for sliders and
> > json
> > > >> > > requests
> > > >> > > > > and it
> > > >> > > > > > >>> > > > >> appears that the javascript is loading faster
> > than
> > > >> the
> > > >> > > html
> > > >> > > > > > >>> causing
> > > >> > > > > > >>> > > > >> the slider to not initialize. it doesn't happen
> > on
> > > >> every
> > > >> > > > > page
> > > >> > > > > > >>> load but
> > > >> > > > > > >>> > > > >> more so in safari.
>
> ...
>
> read more »

Reply via email to