O'Reilly logo

Smashing Mobile Web Development by Greg Avola

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Loading Your JavaScript Files

Loading JavaScript files can be time intensive, depending on the size of the file. Remember, HTML loads from the top down. Web developers can use a couple of tools to help speed up the process on mobile devices.

It’s good to note that JavaScript always loads synchronously, which means that nothing can load while the JavaScript loads. This is why it might be important—depending on your application—to place the JavaScript files at the bottom of the HTML document. However, we will discuss an alternative that loads JavaScript files asynchronously, using a service called head.js.

head.js

head.js (http://headjs.com/) is a JavaScript library that enables you to load the head section asynchronously along with the rest of the HTML. This speeds page load times for your script and CSS files.

To add it your page, follow these steps:

1. Head over to the headjs.com page and click the Download link. You can copy and paste the URL to the latest version of headjs (https://raw.github.com/headjs/headjs/v0.96/dist/head.min.js).

2. Add the following snippet below the handlebarsJS script tag in the head section of the index.html:

<script type=”text/javascript” language=”Javascript”

src=”https://raw.github.com/headjs/headjs/v0.96/dist/head.min.js”></script>

3. Remember all those script tags that you added earlier? You’re now going to remove them and write one script to take care of them loading:

<script type=”text/javascript” language=”Javascript”>

head.js(“assets/js/global.js”, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required