应用程序正在上传一个大文件。 Google Chrome在LocalHost上的最大速度为800到900Mbps。但是Firefox可以达到2Gbps甚至更高!为什么会有如此大的差异?将responseType更改为blob有助于GET请求。如何在Google Chrome浏览器上更快地上传(POST请求)。
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);
}
最佳答案
如果我们可以从JS引擎速度“Chrome VS Firefox”中排除差异,那么从理论上讲,您的测试用例就不会发生。
我建议您看一下chrome中有关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的其他错误:
“响应类型为” blob“的大数据(约140MB)的 XMLHttpRequest返回损坏的文件(blob中9M处约600,000字节显示为错误)。” “
https://bugzilla.mozilla.org/show_bug.cgi?id=1349862
另外,如果我数一数与“blob”一词相关的错误,则Firefox在Chrome中仅发现VS 751的177个错误。
https://bugzilla.mozilla.org/buglist.cgi?quicksearch=Blob