Jquery - 使用XHR上传进度条:event.loaded在一段时间后重置

时间:2014-11-05 16:14:07

标签: jquery file-upload progress-bar

使用jsf 2.2.7和jquery 1.9.1

我使用XMLHttpRequest.upload创建了一个非常好的进度条,除了如标题中所述,event.loaded在某些情况下重置一段时间后,导致进度返回到0 %。我甚至不能说这完全取决于文件的大小,因为它发生了:

a)在本地上传2gb +文件时 b)通过LAN上传1gb +文件时 c)在发布的网站上上传15个 mb +文件时(这是我第一次遇到问题时)

(b)和(c)都比(a)更频繁地重置,并且永远不会达到100%。我可以在浏览器中看到上传保持正常进行,但是条形图并没有反映出进度,因为它一直在失去跟踪。

谁能告诉我发生了什么?我能找到的唯一类似问题是this,但它没有解决。

代码:

var media;

$(document).on("change", "#mediaFile", function() {
    media = this.files[0];
    //some display code
});


$(document).on("click", "#submit", function() {
    if (typeof media != 'undefined') {
        var xhr = new XMLHttpRequest();
        if (xhr.upload) {
            var progress;
            xhr.upload.onloadstart = function() {
                //some display
            }
            xhr.upload.onprogress = function(e) {
                if (e.lengthComputable) {
                    //this e.loaded resets after a while
                    progress = Math.floor(e.loaded / e.total * 100);
                    $("#upload_bg").css("width", progress + '%');
                    $("#upload_percent").text(progress + '%');
                    console.log("loaded: " + e.loaded + " / total: " + e.total + " / percentage: " + Math.floor(e.loaded / e.total * 100) + "%");
                }
            }
            xhr.upload.onloadend = function() {
                //some display code
            }
        }
        xhr.open('post', URL, true);
        xhr.send(media);
    }
});

记录本地2.1gb文件:

装载:1196032 /总计:2109656694 /百分比:0%
装载:22118400 /总计:2109656694 /百分比:1%
装载:32849920 /总计:2109656694 /百分比:1%
(...)
装载:1559707648 /总计:2109656694 /百分比:73%
装载:1572290560 /总计:2109656694 /百分比:74%
已加载:163840 /总计:2109656694 /百分比:0%< ------重置
装载:17924096 /总计:2109656694 /百分比:0%
装载:28803072 /总计:2109656694 /百分比:1%
(...)
装载:1761443840 /总计:2109656694 /百分比:83%
已加载:1638400 /总计:2109656694 /百分比:0%< ------重置
装载:16809984 /总计:2109656694 /百分比:0%
装载:42942464 /总计:2109656694 /百分比:2%
(...)
装载:2075492352 /总计:2109656694 /百分比:98%
装载:2099511296 /总计:2109656694 /百分比:99%
装载:2109656694 /总计:2109656694 /百分比:100%


记录通过LAN发送的1.3gb文件:

装载:131072 /总计:1308543464 /百分比:0%
装载:4014080 /总计:1308543464 /百分比:0%
装载:15826944 /总计:1308543464 /百分比:1%
装载:21741568 /总计:1308543464 /百分比:1%
(...)
装载:181764096 /总数:1308543464 /百分比:13%
已加载:131072 /总计:1308543464 /百分比:0%< ------重置
装载:11993088 /总计:1308543464 /百分比:0%
装载:17874944 /总计:1308543464 /百分比:1%
(...)
装载:76972032 /总计:1308543464 /百分比:5%
装载:82853888 /总计:1308543464 /百分比:6%
装载:177487872 /总计:1308543464 /百分比:13%
已加载:32768 /总计:1308543464 /百分比:0%< ------重置
(永远不会达到100%)

0 个答案:

没有答案