/dynload

Basic script loader

Primary LanguageMakefile

load

Basic script loader.

The simplest and fastest way of loading scripts in modern browser is simply listing them at the end of the body element.

Use load only if for some reason you need to load your scripts dynamically - useful when integrating various 3rd party widgets and snippets (google analytics, disqus, twitter API etc.) on your page.

Installation

Install with npm:

$ npm install dynload

API

var load = require('dynload');
load('//topic.disqus.com/count.js');

Please note that scripts added to the DOM are async by default (see this article on script loading) which means that they will start executing as soon as they load in pretty much random order.

You can force async to false but some browsers will ignore it.

load('//topic.disqus.com/count.js', false);

load returns script element - you can register onerror and onload callbacks

load('//cdn/script.js').onload =  function () {
  console.log('my script loaded');
});

and:

load('//cdn/script.js').onerror =  function (err) {
  console.log('cannot load script', err);
});

If you your callback work with IE use segmentio/script-onload

var load  = require('dynload');
var onload = require('script-onload');

onload(load('//cdn/script.js'), function(err) {
  if (err) {
    console.log('Cannot load script', err);
  } else {
    console.log('Script loaded');
  }
});

License

MIT