Динамическая загрузка файлов
Динамическая загрузка файлов
<input onchange="uploadFile()" type='file' id='upload'> function uploadFile() { var data = new FormData(); //New FormData data.append('file', $("#upload").prop('files')[0]); $.ajax({ url: 'upload.php', type: 'POST', data: data, processData: false, contentType: false, success: function(respond){ alert('ok'); } }); } Очень долго передаёт данные файла. Хотя я даже не загружаю их. а просто хочу передать данные. Как это исправить ? |
да чего то затормозил )) .. для получения данных он всё равно предварительно загружает на сервер, верно ?
а вот ещё один момент. ... xhr: function(){ var xhr = $.ajaxSettings.xhr(); // получаем объект XMLHttpRequest xhr.upload.addEventListener('progress', function(e){ ... } }); Почему e.loaded показывает загрузку файла намного быстрее чем на самом деле ? |
файл ещё не загрузился а e.loaded выдаёт что загрузилось
|
$.ajax({ url: 'upload.php', type: 'POST', data: data, processData: false, contentType: false, xhr: function(){ var xhr = new XMLHttpRequest(); xhr.upload.addEventListener('progress', function(evt){ if(evt.lengthComputable) { var percentComplete = Math.ceil(evt.loaded / evt.total * 100 ); $("#progress").css('width', percentComplete+'%'); } }, false); return xhr; }, success: function(respond){ alert('ВОТ ЗДЕСЬ Я ПОНИМАЮ ЧТО ФАЙЛ ЗАГРУЗИЛСЯ'); } }); но прогресс бар быстрее заполняется |
прогресс бар заполняется здесь ->> $("#progress").css('width', percentComplete+'%');
выполняется после удачной загрузки, ->> alert(); но прогресс бар заполнятся за 2-3 секунды хотя я загружаю 100мб . ну а alert() выходит уже после удачной загрузки |
Нет не локалка
Цитата:
|
да пустой
|
Да это так. Но вопрос всё же в силе.
А вообще как именно работает эта функция ? var xhr = new XMLHttpRequest(); xhr.upload.addEventListener('progress', .... |
Цитата:
то уведите что индексация прогресса за пару секунд закончится. хотя понятно что за это время файл не загрузится |
там нет ограничений
|
У меня загружает
|
|
Индикатор прогресса он же всё равно показывает
|
я выбираю на загрузку файл 500 мб . а индикатор за 2 секунды показывает что файл загрузился. То есть не соответствует реальному времени загрузки
|
на локалке всё тоже самое
|
Нет, ограничений нет. Просто запрос evt.loaded сообщает о полной загрузке намного быстрее чем на самом деле xhr.upload.addEventListener('progress', ...
evt.loaded за считанные секунды показывает что загрузился весь обьём. хотя загрузка ещё идёт. Загружаю файла от 100 до 200 мб, поэтому нужен точный прогресс бар что бы пользователь понимал что идёт загрузка. |
Часовой пояс GMT +3, время: 22:20. |