Skip to content

Instantly share code, notes, and snippets.

@andrijac
Forked from hagenburger/javascript_loader.js
Last active November 11, 2019 21:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrijac/b71f9ffb62e74f98473d107864eea138 to your computer and use it in GitHub Desktop.
Save andrijac/b71f9ffb62e74f98473d107864eea138 to your computer and use it in GitHub Desktop.
Dynamically load JavaScript files with callback when finished
atm.loadScript = (function () {
let loadedScripts = [];
return function (src, callback) {
if (~loadedScripts.indexOf(src) && callback) {
callback();
}
$.ajax({
url: src,
dataType: 'script',
success: innerCallback,
async: true,
error: function () {
console.log(error);
}
});
function innerCallback(script) {
//eval(script);
loadedScripts.push(src);
callback();
}
};
})();
loadScript = (function () {
let loadedScripts = [];
return function (src, callback) {
if (~loadedScripts.indexOf(src) && callback) {
callback();
}
let script = document.createElement('script'),
loaded;
script.setAttribute('src', src);
if (callback) {
script.onreadystatechange = script.onload = function () {
if (!loaded) {
callback();
}
loaded = true;
loadedScripts.push(src);
};
}
document.getElementsByTagName('head')[0].appendChild(script);
};
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment