Skip to content
This repository was archived by the owner on Mar 16, 2019. It is now read-only.

Commit 680331d

Browse files
committed
Optimize JS performance by using different UID generator and remove bind statements
1 parent 1ebbb89 commit 680331d

File tree

2 files changed

+12
-14
lines changed

2 files changed

+12
-14
lines changed

polyfill/XMLHttpRequest.js

+10-10
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,11 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget{
196196
})
197197
.fetch(_method, _url, _headers, body)
198198
this._task
199-
.stateChange(this._headerReceived.bind(this))
200-
.uploadProgress(this._uploadProgressEvent.bind(this))
201-
.progress(this._progressEvent.bind(this))
202-
.catch(this._onError.bind(this))
203-
.then(this._onDone.bind(this))
199+
.stateChange(this._headerReceived)
200+
.uploadProgress(this._uploadProgressEvent)
201+
.progress(this._progressEvent)
202+
.catch(this._onError)
203+
.then(this._onDone)
204204

205205
})
206206
}
@@ -274,7 +274,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget{
274274
return result.substr(0, result.length-2)
275275
}
276276

277-
_headerReceived(e) {
277+
_headerReceived = (e) => {
278278
log.debug('header received ', this._task.taskId, e)
279279
this.responseURL = this._url
280280
if(e.state === "2") {
@@ -285,7 +285,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget{
285285
}
286286
}
287287

288-
_uploadProgressEvent(send:number, total:number) {
288+
_uploadProgressEvent = (send:number, total:number) => {
289289
if(!this._uploadStarted) {
290290
this.upload.dispatchEvent('loadstart')
291291
this._uploadStarted = true
@@ -295,7 +295,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget{
295295
this.upload.dispatchEvent('progress', new ProgressEvent(true, send, total))
296296
}
297297

298-
_progressEvent(send:number, total:number, chunk:string) {
298+
_progressEvent = (send:number, total:number, chunk:string) => {
299299
log.verbose(this.readyState)
300300
if(this._readyState === XMLHttpRequest.HEADERS_RECEIVED)
301301
this._dispatchReadStateChange(XMLHttpRequest.LOADING)
@@ -310,7 +310,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget{
310310
this.dispatchEvent('progress', e)
311311
}
312312

313-
_onError(err) {
313+
_onError = (err) => {
314314
let statusCode = Math.floor(this.status)
315315
if(statusCode >= 100 && statusCode !== 408) {
316316
return
@@ -331,7 +331,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget{
331331
this.clearEventListeners()
332332
}
333333

334-
_onDone(resp) {
334+
_onDone = (resp) => {
335335
log.debug('XMLHttpRequest done', this._url, resp, this)
336336
this._statusText = this._status
337337
let responseDataReady = () => {

utils/uuid.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
export default function getUUID() {
2-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
3-
let r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
4-
return v.toString(16);
5-
});
2+
return Math.random().toString(36).substring(2, 15) +
3+
Math.random().toString(36).substring(2, 15);
64
}

0 commit comments

Comments
 (0)