2016-07-09 90 views
17

應用正在上傳大文件。 Google Chrome在LocalHost上達到最高800到900Mbps。但Firefox可以達到2Gbps或更高!爲什麼這麼大的差別?將GET請求中的更改爲blob的responseType有幫助。如何在谷歌瀏覽器上更快地上傳(POST請求)。Google chrome上傳速度與火狐

function sendRequest(n){ 
    var Self = this; 
     Self.newTime = Date.now(); 
     Self.Open = new XMLHttpRequest(); 

     Self.Open.upload.onprogress = function(event){ 
     console.log("Upload Pregress") 

     Self.CurTime = (Date.now() - Self.newTime); 
     Self.OverallCurTime = (Date.now() - Self.OverallTime)/1000; 
     Self.EventData = event.loaded; 
     Self.EventTotal = event.total; 
     Self.SpeedData = (parseFloat((8000 * (Self.EventData /Self.CurTime[n])/1048576))); 
     } 

     Self.Open.open("POST", "upload.bin" + "?n=" + Math.random(), true); 
     Self.Open.setRequestHeader("Content-Type", "arrayBuffer"); 
     Self.Open.responseType = "blob"; 
     Self.Open.send(Self.UploadData); 

    } 
+0

能你請告訴我這樣做的目的是什麼?你試圖完成的是我的意思! – MoolsBytheway

+0

並且談到請求類型,你應該考慮GET請求往往比POST請求更好執行 – MoolsBytheway

+0

是你的chrome 32位,而你r Firefox 64位? – dandavis

回答

5

如果我們能排除JS引擎速度」的Chrome VS Firefox中的差異,那麼在理論上你的測試用例應該不會發生。

我勸你最好先看看下面的未解決的bug從有關BLOB

https://bugs.chromium.org/p/chromium/issues/list?can=2&q=blob&colspec=ID+Pri+M+Stars+ReleaseBlock+Component+Status+Owner+Summary+OS+Modified&x=m&y=releaseblock&cells=ids

但只是爲了專注於錯誤是你的問題的答案的可能性鉻,我還可以告訴你在Firefox中使用一滴其他錯誤:

響應類型爲」blob「的大數據(大約140MB)的XMLHttpRequest返回一個損壞的文件(blob中9M左右的大約600,000字節出現錯誤)。

https://bugzilla.mozilla.org/show_bug.cgi?id=1349862

而且,如果我做對有關字的錯誤計數 」斑點「,則僅Firefox已經177個臭蟲發現VS 751在Chrome中。

https://bugzilla.mozilla.org/buglist.cgi?quicksearch=Blob