Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax XHR进度事件到达得太快_Ajax_Amazon S3_Xmlhttprequest - Fatal编程技术网

Ajax XHR进度事件到达得太快

Ajax XHR进度事件到达得太快,ajax,amazon-s3,xmlhttprequest,Ajax,Amazon S3,Xmlhttprequest,我正在使用html表单和ajax直接上传到S3。工作正常,文件上传。我的问题是进步事件来得太快。像所有这些一样,高达99.9%的用户在上传开始时立即被解雇 var fd = new FormData(); // put data from the form to FormData object $.each( $('#upload-form').serializeArray(), function(i, field) { fd.append(field.name, field

我正在使用html表单和ajax直接上传到S3。工作正常,文件上传。我的问题是进步事件来得太快。像所有这些一样,高达99.9%的用户在上传开始时立即被解雇

var fd = new FormData();

// put data from the form to FormData object 
$.each( $('#upload-form').serializeArray(), function(i, field) {
        fd.append(field.name, field.value);
});

// add selected filename to the form data
var file = document.getElementById('path-to-file').files[0];
fd.append("file", file);

var xhr = getXmlHttpRequest(); // cross-browser implementation 

xhr.upload.addEventListener("progress", function(e) {
    console.log(e.loaded + "/" + e.total);
});

xhr.open('POST', 'http://mybucket.s3.amazonaws.com/', true); 
xhr.send(fd);   
我也试过这种方法

xhr.upload.onprogress = function(evt)
{
    if (evt.lengthComputable)
    {
        console.log(e.loaded + "/" + e.total);
    }
};
浏览器日志如下所示:

[22:54:47.245] POST http://mybucket.s3.amazonaws.com/ 
[22:54:47.287] 359865/5680475
[22:54:47.330] 1408441/5680475
[22:54:47.408] 2751929/5680475
[22:54:47.449] 3964345/5680475
[22:54:47.509] 5668281/5680475
然后上传一个5M文件所需的时间就没有了


如果浏览器信息是相关的,我有Firefox 20.0.1,它在其他浏览器中做什么?嗯,当从发送端通过套接字发送字节时,该事件就会触发(这通常很快);而不是当服务器实际接收到这些字节时。这就是你看到它的原因。@monsur在Chrome 26.0.1410.64 mI中的相同行为我也有同样的问题。不管文件有多大,它似乎直接达到100%。很高兴看到这个问题的答案。