Use the Loading on Demand Loading Strategy
Loading on Demand
The previous pattern loaded additional JavaScript unconditionally after page load, assuming
  that the code will likely be needed. But can we do better and load only parts of
  the code and only the parts that are really needed?
  Imagine you have a sidebar on the page with different tabs. Clicking on a tab makes an
  XHR request to get content, updates the tab content, and animates the update fading
  the color. 
  And what if this is the only place on the page you need your XHR and animation
  libraries, and what if the user never clicks on a tab?
  Enter the load-on-demand pattern. You can create a require() function or method that
  takes a filename of a script to be loaded and a callback function to be executed when
  the additional script is loaded.
The require() function can be used like so:
require("extra.js", function () {
   functionDefinedInExtraJS();
});
Let’s see how you can implement such a function. Requesting the additional script is
straightforward. You just follow the dynamic  element pattern. Figuring out
when the script is loaded is a little trickier due to the browser differences:
function require(file, callback) {
   var script = document.getElementsByTagName('script')[0],
   newjs = document.createElement('script');
  // IE
  newjs.onreadystatechange = function () {
     if (newjs.readyState === 'loaded' || newjs.readyState === 'complete') {
        newjs.onreadystatechange = null;
        callback();
     }
  };
  // others
  newjs.onload = function () {
     callback();
  }; 
  newjs.src = file;
  script.parentNode.insertBefore(newjs, script);
}
“JavaScript Patterns, by Stoyan Stefanov
(O’Reilly). Copyright 2010 Yahoo!, Inc., 9780596806750.”