Я пытаюсь создать правильный индикатор выполнения для загрузки файла в Excel в Laravel Я использую ajax, чтобы загрузить файл и получил индикатор выполнения для части загрузки, чтобы "завершить работу". Моя единственная проблема заключается в том, что когда файл загружен (на 100% завершено в части загрузки), он по-прежнему говорит «загрузка ...». Похоже, uploadProgress
не прыгает вперед до success
, когда все готово.
Файл обрабатывается в обратном направлении с помощью laravel -excel, и обработка большого Excel занимает очень очень много времени. файлы с 1M + строк.
Вот также скриншот этого. Я консоль зарегистрировал прогресс, и все прошло нормально, пока не перешло go к функции success
в вызове ajax.
Что я могу сделать, чтобы это исправить? Я не могу ограничить количество строк при загрузке файлов Excel, так как создаваемый мной веб-сайт должен загружать файлы, содержащие столько или больше строк.
Кроме того, мой код для ajax загрузка:
// AJAX form upload
var form = $('.form-import');
var bar = $('.import-progress-bar');
var status = $('.import-status');
form.ajaxForm({
beforeSend: function() {
status.empty();
bar.attr('value', 0);
},
uploadProgress: function(event, position, total, percentComplete) {
bar.attr('value', percentComplete);
status.html('Uploading...');
console.log('Upload progress - '+ percentComplete + '%');
},
success: function() {
status.html('Importing rows...');
},
complete: function() {
status.html('Importing complete!');
}
});