我需要获得ajax请求的%完成率。
我尝试了以下内容:
$(document).ready(function() {
$.ajax({
xhr : function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = (evt.loaded / evt.total) * 100;
//Do something with upload progress here
}
}, false);
xhr.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = (evt.loaded / evt.total) * 100;
//Do something with download progress
console.log(percentComplete);
}
}, false);
return xhr;
},
url : my_path
}).done(function(data) {
console.log(data);
});
});
问题是如何检查上述代码是否有效。我总是在firebug控制台中得到100
,我怀疑而不是100
在控制台中应该有多个%
条目。
my_path
是一个返回MySQL DB记录的PHP页面。有没有办法减慢进程/页面呈现以检查功能?
答案 0 :(得分:3)
使用数据库读取的问题是首先需要知道大小,所以你真的需要一个文件来测试它。
对于下载(客户端从服务器下载),你需要引入延迟,否则你只能追索下载一个巨大的文件。
尝试this script,它设置正确的内容长度标题,一次只输出50个字节,延迟1秒(你可以用相对较小的文件测试它,woot)。
至于上传(发布到服务器),在这方面你唯一的选择是把它变成一个大文件,并在完成后丢弃它。