我从http://www.dave-bond.com/blog/2010/01/JQuery-ajax-progress-HMTL5/阅读了内容, 并尝试在自己的网站上制作该 ajax 进度条,但在控制台中我只有 xhr php脚本完整完成时的响应。
我的部分 JS 代码:
$('#userSaveData').on('click', function(e){
e.preventDefault();
var $form = $(this).closest('form');
var route = $form.attr('action');
var form_data = $form.serializeObject();
$.ajax({
xhr: function()
{
var xhr = new window.XMLHttpRequest();
//Upload progress
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
//Do something with upload progress
console.log(percentComplete);
}
}, false);
//Download progress
xhr.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
//Do something with download progress
console.log(percentComplete);
}
}, false);
return xhr;
},
type: 'post',
url: route,//url to my script below
data: form_data, //some data, not used in script below
success: function(){
console.log('completed');
}
});
return false;
});
例如,我的测试 php 脚本的一部分是:
<?php
usleep(10000000);
echo true;
?>
我当前的控制台日志首先显示 1,然后在大约 10 秒后 console.log 写入“完成”
简单地说,我想在 ajax 请求正在进行时(php 睡眠时间约为 10 秒)显示在 ajax 请求的控制台百分比中(这可能吗?)。
请帮忙。