JS placement: Beginning or at the end of the file?

Discussion in 'JavaScript' started by enchance, May 15, 2008.

  1. #1
    Which is the safer bet, to place your JS (including external JS) within the <head></head> tags or at the very end of your <body></body> tag? Or better yet, is it more efficient to simply use the code below:
    
    
    <head>
    document.onload = function(){
         //execute all js functions
    }
    </head>
    <body>
    </body>
    
    Code (markup):
    Which do you use?
     
    enchance, May 15, 2008 IP
  2. eTechDude.com

    eTechDude.com Member

    Messages:
    205
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    28
    #2
    my pages execute the code on the spot within the page in the <head> tags.
     
    eTechDude.com, May 17, 2008 IP
  3. DeeJayEl

    DeeJayEl Peon

    Messages:
    91
    Likes Received:
    3
    Best Answers:
    0
    Trophy Points:
    0
    #3
    Depends, here's a good answer to that question:


    Put Scripts at the Bottom

    The problem caused by scripts is that they block parallel downloads. The HTTP/1.1 specification suggests that browsers download no more than two components in parallel per hostname. If you serve your images from multiple hostnames, you can get more than two downloads to occur in parallel. While a script is downloading, however, the browser won't start any other downloads, even on different hostnames.

    In some situations it's not easy to move scripts to the bottom. If, for example, the script uses document.write to insert part of the page's content, it can't be moved lower in the page. There might also be scoping issues. In many cases, there are ways to workaround these situations.

    An alternative suggestion that often comes up is to use deferred scripts. The DEFER attribute indicates that the script does not contain document.write, and is a clue to browsers that they can continue rendering. Unfortunately, Firefox doesn't support the DEFER attribute. In Internet Explorer, the script may be deferred, but not as much as desired. If a script can be deferred, it can also be moved to the bottom of the page. That will make your web pages load faster.


    Source: http://developer.yahoo.com/performance/rules.html#postload
     
    DeeJayEl, May 18, 2008 IP