summaryrefslogtreecommitdiff
path: root/js/cheesesteak.js
diff options
context:
space:
mode:
authorJuuso Lapinlampi <wub@partyvan.eu>2015-09-28 20:35:32 +0200
committerJuuso Lapinlampi <wub@partyvan.eu>2015-09-28 20:47:18 +0200
commit2751811e56129b14a423e64a6d638ad466268202 (patch)
treeaec78a78949811c75a800da8af721c051e7ad193 /js/cheesesteak.js
parent043967a00987a840dffb3a5845246e5eef5a033b (diff)
Name and comment addEventListener functions
Using anonymous functions with event handlers is painfully slow according to benchmarks. Anonymous functions are up to 99% slower. It is also illegal to use anonymous functions in this way according to Airbnb ES5 style guide. Fixes some ESLint func-names errors using Airbnb ES5 config. Reference: https://jsperf.com/event-handler-vs-anonymous-function/3
Diffstat (limited to 'js/cheesesteak.js')
-rw-r--r--js/cheesesteak.js34
1 files changed, 22 insertions, 12 deletions
diff --git a/js/cheesesteak.js b/js/cheesesteak.js
index ea3dc19..4b00c3e 100644
--- a/js/cheesesteak.js
+++ b/js/cheesesteak.js
@@ -152,13 +152,15 @@
var xhr = new XMLHttpRequest();
xhr.open(opts.method, this.url, true);
- xhr.upload.addEventListener('loadstart', function(e) {
+
+ function initProgressBar(e) {
for (var i = 0, l = files.length; i < l; i++) {
files[i].uploadedSize = 0;
}
- });
+ }
+ xhr.upload.addEventListener('loadstart', initProgressBar);
- xhr.upload.addEventListener('progress', function(e) {
+ function updateProgressBar(e) {
if (e.lengthComputable) {
size = e.loaded;
@@ -181,23 +183,31 @@
}
_this.emit('uploadprogress', e, files);
- }, false);
+ }
+ xhr.upload.addEventListener('progress', updateProgressBar, false);
- xhr.upload.addEventListener('loadstart', function(e) {
+ function startUpload(e) {
_this.emit('uploadstart', e);
- });
+ }
+ xhr.upload.addEventListener('loadstart', startUpload);
- xhr.upload.addEventListener('load', function(e) {
+ // The upload is complete, now tell the user to wait for URLs.
+ function postUpload(e) {
_this.emit('uploadcomplete', e);
- });
+ }
+ xhr.upload.addEventListener('load', postUpload);
- xhr.addEventListener('progress', function(e) {
+ // Tell the browser the upload completed and wait for response.
+ function postProgress(e) {
_this.emit('progress', e);
- });
+ }
+ xhr.upload.addEventListener('progress', postProgress);
- xhr.addEventListener('load', function(e) {
+ // Send a success/error response. Nothing more to do.
+ function uploadFinished(e) {
_this.emit('load', e, xhr.responseText);
- });
+ }
+ xhr.upload.addEventListener('load', uploadFinished);
xhr.send(data);