XmlHttpRequest上传进度事件仅触发一次且过早

3
我正在尝试上传文件的一部分(使用HTML5文件API、切片和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中看到这个问题的。 - Ieuan
1个回答

0

答案 - 代码没有问题。我的电脑出了点问题,在另一台电脑上同样的浏览器中可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接