Skip to content

Instantly share code, notes, and snippets.

@EddiG
Last active July 13, 2017 06:43
Show Gist options
  • Save EddiG/9e92cb62ea8ffa9a4b71d54b1dfb95c6 to your computer and use it in GitHub Desktop.
Save EddiG/9e92cb62ea8ffa9a4b71d54b1dfb95c6 to your computer and use it in GitHub Desktop.

Took it from https://rekit-portal.herokuapp.com/element/src%252Findex.html/code

(function() {
  var loadingNode = document.getElementById('loading-node');
  var textNode = loadingNode.childNodes[0];
  var barNode = loadingNode.childNodes[1];
  var req = new XMLHttpRequest();

  // report progress events
  req.addEventListener('progress', function(evt) {
    var percentComplete = (evt.loaded || 0) / (evt.total || 2348700);
    if (percentComplete > 1) percentComplete = 1;
    var percent = Math.round(percentComplete * 100, 10) + '%';
    textNode.innerHTML = 'Loading...' + percent;
    barNode.style.width = percent;
  }, false);

  // load responseText into a new script element
  req.addEventListener('load', function(evt) {
    window.setTimeout(function() {
      // timeout to ensure 100% progress bar.
      var scriptNode = document.createElement('script');
      scriptNode.innerHTML = evt.target.responseText;
      document.getElementsByTagName('head')[0].appendChild(scriptNode);
    }, 0);
  }, false);

  // TODO: handle load error

  req.open('GET', '/static/main.js');
  req.send();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment