Мне нужно получить выполнение% для запроса 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);
});
});
Проблема заключается в том, как проверить, работает ли этот код или нет. Я всегда получаю 100
в консоли firebug, я сомневаюсь, что вместо 100
в консоли должно быть несколько записей %
.
my_path
- это страница PHP, которая возвращает записи из базы данных MySQL. Есть ли способ замедлить процесс/рендеринг страницы для проверки функциональности?
Проблема с использованием чтения БД - это то, что сначала нужно знать размер, поэтому вам действительно нужен файл для проверки этого.
Для загрузки (загрузка клиента с сервера) вам нужно ввести задержку, иначе вы только хотите скачать огромный файл.
Попробуйте этот script, который устанавливает правильные заголовки длины контента и выводит только 50 байтов за раз, с задержкой в 1 секунду (вы можете протестировать его с относительно небольшим файлом, woot).
Что касается Uploading (отправка на сервер), единственным вариантом в этом отношении является сделать его большим файлом и отменить его, когда это будет сделано.