Javascript Safari:在6个并发XMLHttpRequest请求之后,将不会调用进度块

Javascript Safari:在6个并发XMLHttpRequest请求之后,将不会调用进度块,javascript,jquery,ajax,safari,xmlhttprequest,Javascript,Jquery,Ajax,Safari,Xmlhttprequest,我正在构建一个多文件上传jQuery脚本,并使用XMLHttpRequest和FormData上传文件。效果很好 但是,从测试和我读到的内容来看,您只能同时有6个并发XMLHttpRequest请求。从我的测试来看,这是正确的,但在这6项中的任何一项完成后,队列中的下一项将上载,这是人们所期望的 这个问题与进度函数有关。在使用Safari时,仅对前6个文件调用此函数,但排队的下一个文件不调用progress方法。Firefox和Chrome执行正确,并显示所有文件的进度。以下是我正在使用的: _

我正在构建一个多文件上传jQuery脚本,并使用XMLHttpRequest和FormData上传文件。效果很好

但是,从测试和我读到的内容来看,您只能同时有6个并发XMLHttpRequest请求。从我的测试来看,这是正确的,但在这6项中的任何一项完成后,队列中的下一项将上载,这是人们所期望的

这个问题与进度函数有关。在使用Safari时,仅对前6个文件调用此函数,但排队的下一个文件不调用progress方法。Firefox和Chrome执行正确,并显示所有文件的进度。以下是我正在使用的:

_makeRequest: function(asset) {
    var _this = this;
    var xhr = new XMLHttpRequest();
    (function(progress) { 
        xhr.upload.onprogress = function(e) {
            if (e.lengthComputable) {
                _this._progress(asset, e);
            } else {
                _this._log('Error: 'asset.file.name+' not computable');
            }
        };
    }(asset.progress));
    xhr.upload.addEventListener('load', function(e) {
        _this._complete(e, _this);
    });
    xhr.upload.addEventListener('error', function(e) {
        _this._failed(e, _this);
    });
    xhr.upload.addEventListener("abort", function(e) {
        _this._canceled(e, _this);
    });
    xhr.upload.addEventListener("loadstart", function(e) {
        _this._start(e, _this);
    });
    xhr.open("POST", this.assetBuilder.url);
    xhr.send(this._formData(asset));
}

有没有办法让排队的文件也调用Safari中的进度函数,以便我可以更新我的UI进度栏?

在什么浏览器中会发生这种情况?你说排队是什么意思?您是手动排队上传文件,还是希望浏览器排队连接?@Bergi-这似乎只发生在Safari中。在这种情况下,我称之为浏览器错误:-