diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-08-09 17:32:10 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-08-09 17:32:10 -0700 |
commit | 609fa655772655c6376fb7eff8860a9b3c83c6e9 (patch) | |
tree | 59786dca64db970cc2aee9e1f3107feac78ba98d | |
parent | 91a6f5cdabad809c94c52ccc2f0eac518ac65679 (diff) |
show progress on datafile download
-rw-r--r-- | src/shell.html | 46 | ||||
-rw-r--r-- | tools/file_packager.py | 7 |
2 files changed, 24 insertions, 29 deletions
diff --git a/src/shell.html b/src/shell.html index 683b1b68..3a0171de 100644 --- a/src/shell.html +++ b/src/shell.html @@ -49,35 +49,23 @@ } }, canvas: document.getElementById('canvas'), - setStatus: function(text) { - if (Module.setStatus.interval) clearInterval(Module.setStatus.interval); - var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/); - var statusElement = document.getElementById('status'); - var progressElement = document.getElementById('progress'); - if (m) { - text = m[1]; - progressElement.value = parseInt(m[2])*100; - progressElement.max = parseInt(m[4])*100; - progressElement.hidden = false; - } else { - progressElement.value = null; - progressElement.max = null; - progressElement.hidden = true; - } - statusElement.innerHTML = text; - if (text) { - var counter = 0; - Module.setStatus.interval = setInterval(function() { - counter++; - counter %= 3; - var dots = ' '; - for (var i = 0; i < counter; i++) dots += '.'; - dots += '*'; - for (var i = counter; i < 2; i++) dots += '.'; - statusElement.innerHTML = text.replace('...', dots); - }, 300); - } - }, + setStatus: function(text) { + if (Module.setStatus.interval) clearInterval(Module.setStatus.interval); + var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/); + var statusElement = document.getElementById('status'); + var progressElement = document.getElementById('progress'); + if (m) { + text = m[1]; + progressElement.value = parseInt(m[2])*100; + progressElement.max = parseInt(m[4])*100; + progressElement.hidden = false; + } else { + progressElement.value = null; + progressElement.max = null; + progressElement.hidden = true; + } + statusElement.innerHTML = text; + }, totalDependencies: 0, monitorRunDependencies: function(left) { this.totalDependencies = Math.max(this.totalDependencies, left); diff --git a/tools/file_packager.py b/tools/file_packager.py index fdd5396c..12e42913 100644 --- a/tools/file_packager.py +++ b/tools/file_packager.py @@ -308,6 +308,13 @@ if has_preloaded: code += ''' var dataFile = new XMLHttpRequest(); + dataFile.onprogress = function(event) { + if (event.loaded && event.total) { + Module.setStatus('Downloading... (' + event.loaded + '/' + event.total + ')'); + } else { + Module.setStatus('Downloading...'); + } + } dataFile.open('GET', '%s', true); dataFile.responseType = 'arraybuffer'; dataFile.onload = function() { |