Я читал контент от http://www.dave-bond.com/blog/2010/01/JQuery-ajax-progress-HMTL5/, и я пытаюсь сделать этот индикатор выполнения на моем собственном сайте, но в консоли у меня есть только xhr-ответ, когда PHP-скрипт завершен полностью.Процент хода выполнения запроса AJAX
Моя часть 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сек консоли. log write 'completed'
Просто я хочу, чтобы в то время как выполняется запрос ajax (время простоя php составляет около 10 секунд), отображается процент консоли ajax reqest (возможно ли это?).
Пожалуйста, помогите.
Я стараюсь, но такой же результат. – Vlatko
@ user1477508 Вы можете лучше описать проблему? Вы видите какую-либо ошибку JS в консоли? Можете ли вы установить точку останова в обратном вызове выполнения? И как браузер может знать 'evt.total', если ваш серверный скрипт не отправляет заголовок' Content-Length'? – Raffaele
Ошибок в консоли, сценарий сервера, как указано выше, в лизинге описывают, что мне нужно добавить. – Vlatko