Javascript XmlHttpRequest上载进度事件firng仅一次且太早

Javascript XmlHttpRequest上载进度事件firng仅一次且太早,javascript,file-upload,upload,xmlhttprequest,Javascript,File Upload,Upload,Xmlhttprequest,我试图上传一个文件块(使用HTML5文件API、slice和XmlHttpRequest2),并向用户报告进度 我遇到的问题是,进度事件通常会立即触发(即使块大小为5MB),“loaded”值等于块的大小。当然,上传区块可能需要30秒,在此期间用户没有反馈 下面的代码,如果有人可以帮忙,请?我几乎一直在为这件事大发雷霆,但找不到任何人遇到过同样的问题 var startPosition = (partNumber - 1) * PART_SIZE; var blob; if (typeof f

我试图上传一个文件块(使用HTML5文件API、slice和XmlHttpRequest2),并向用户报告进度

我遇到的问题是,进度事件通常会立即触发(即使块大小为5MB),“loaded”值等于块的大小。当然,上传区块可能需要30秒,在此期间用户没有反馈

下面的代码,如果有人可以帮忙,请?我几乎一直在为这件事大发雷霆,但找不到任何人遇到过同样的问题

var startPosition = (partNumber - 1) * PART_SIZE;
var blob;

if (typeof fileUpload.File.slice != "undefined")
{
    blob = fileUpload.File.slice(startPosition, startPosition + contentLength);
}
else
{
    if (typeof fileUpload.File.webkitSlice != "undefined")
        blob = fileUpload.File.webkitSlice(startPosition, startPosition + contentLength);

    if (typeof fileUpload.File.mozSlice != "undefined")
        blob = fileUpload.File.mozSlice(startPosition, startPosition + contentLength);
}

fileUpload.PartNumber = partNumber;



        var xhr = new XMLHttpRequest();            

        // Add event listener for progress
        xhr.upload.onprogress = function (event) 
        {
            log.debug("progress " + event.loaded);

            if (event.lengthComputable)
                UpdateProgress(fileUpload, event.loaded);
        };            

        xhr.open("PUT", url, true);

        xhr.setRequestHeader('authorization', result);

        // Make the request an HTTP PUT
        log.debug('Sending PUT request to ' + url);
        xhr.send(blob);

回答-代码没有问题。我的电脑有点问题,它可以在不同电脑的同一浏览器中正常工作。

忘了提到我在Google Chrome中看到过这一点