Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Location of Javascript on HTML page

Posted on 2016-11-01
3
Medium Priority
?
63 Views
Last Modified: 2016-11-02
I have been doing websites for over 20 years. Traditionally, I always thought that the Javascript had to be in the document <head> section.

I gather now it can be anywhere, paired by <script>......</script>

Is that true?
0
Comment
Question by:Richard Korts
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 35

Accepted Solution

by:
Terry Woods earned 2000 total points
ID: 41869382
Yes, though it's good practice to add "async" or "defer" for scripts that can load asynchronously or be deferred until after page load, to speed load time.
0
 
LVL 43

Expert Comment

by:Rob
ID: 41869464
(No points, just wanted to clarify) Yes it can be anywhere. The key point too is that putting it in the head means the browser will typically load the script and run it before your page has loaded. This can not only cause errors but also increase the time it takes for your page to load.
It's become accepted practice to put scripts at the bottom of the page, just before the body end tag. That way the browser does not "see" that script until your page (the DOM) is loaded
1
 
LVL 59

Expert Comment

by:Julian Hansen
ID: 41869777
Addendum to Rob and Terry's post.

There can be an order requirement in how you place scripts.

For example
<script>
$(function() {
  $('.someclass').click();
});
</script>
<script src="http://code.jquery.com/jquery.js"></script>

Open in new window

Will generate an error because $(function) uses jQuery which the browser does not know about yet.

If you are emitting jQuery or JavaScript with a library dependency and you put your scripts before </body> you could run into this problem. The solution is to place in the head or to cache your script output and emit it all at the end.

Having said that random script output in my view is bad design so a well designed page should not run into these problems.

If you are really interested in performance you would pack your JS and CSS files into single files for final deployment of your site so there is only one file which you could then include.
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article demonstrates how to create a simple responsive confirmation dialog with Ok and Cancel buttons using HTML, CSS, jQuery and Promises
Is your Office 365 signature not working the way you want it to? Are signature updates taking up too much of your time? Let's run through the most common problems that an IT administrator can encounter when dealing with Office 365 email signatures.
In this tutorial viewers will learn how to embed an audio file in a webpage using HTML5. Ensure your DOCTYPE declaration is set to HTML5: : The declaration should display (CODE) HTML5 is supported by the most recent versions of all major browsers…
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question