Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.04.2018, 16:58
Кандидат Javascript-наук
Отправить личное сообщение для Samsam Посмотреть профиль Найти все сообщения от Samsam
 
Регистрация: 24.04.2014
Сообщений: 100

Динамическая загрузка файлов
Динамическая загрузка файлов


<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');
				}
		});
	}


Очень долго передаёт данные файла. Хотя я даже не загружаю их. а просто хочу передать данные. Как это исправить ?
Ответить с цитированием
  #2 (permalink)  
Старый 28.04.2018, 18:15
Кандидат Javascript-наук
Отправить личное сообщение для Samsam Посмотреть профиль Найти все сообщения от Samsam
 
Регистрация: 24.04.2014
Сообщений: 100

да чего то затормозил )) .. для получения данных он всё равно предварительно загружает на сервер, верно ?

а вот ещё один момент.

...
xhr: function(){

var xhr = $.ajaxSettings.xhr(); // получаем объект XMLHttpRequest
xhr.upload.addEventListener('progress', function(e){
...
}
});
Почему e.loaded показывает загрузку файла намного быстрее чем на самом деле ?
Ответить с цитированием
  #3 (permalink)  
Старый 28.04.2018, 18:23
Кандидат Javascript-наук
Отправить личное сообщение для Samsam Посмотреть профиль Найти все сообщения от Samsam
 
Регистрация: 24.04.2014
Сообщений: 100

файл ещё не загрузился а e.loaded выдаёт что загрузилось
Ответить с цитированием
  #4 (permalink)  
Старый 28.04.2018, 18:35
Кандидат Javascript-наук
Отправить личное сообщение для Samsam Посмотреть профиль Найти все сообщения от Samsam
 
Регистрация: 24.04.2014
Сообщений: 100

$.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('ВОТ ЗДЕСЬ Я ПОНИМАЮ ЧТО ФАЙЛ ЗАГРУЗИЛСЯ');
				}
		});


но прогресс бар быстрее заполняется
Ответить с цитированием
  #5 (permalink)  
Старый 28.04.2018, 18:49
Кандидат Javascript-наук
Отправить личное сообщение для Samsam Посмотреть профиль Найти все сообщения от Samsam
 
Регистрация: 24.04.2014
Сообщений: 100

прогресс бар заполняется здесь ->> $("#progress").css('width', percentComplete+'%');


выполняется после удачной загрузки, ->> alert();

но прогресс бар заполнятся за 2-3 секунды хотя я загружаю 100мб . ну а alert() выходит уже после удачной загрузки
Ответить с цитированием
  #6 (permalink)  
Старый 28.04.2018, 19:08
Кандидат Javascript-наук
Отправить личное сообщение для Samsam Посмотреть профиль Найти все сообщения от Samsam
 
Регистрация: 24.04.2014
Сообщений: 100

Нет не локалка

Сообщение от Rise Посмотреть сообщение
а за сколько надо по сети же не передается?
. что не передаётся ?
Ответить с цитированием
  #7 (permalink)  
Старый 28.04.2018, 19:19
Кандидат Javascript-наук
Отправить личное сообщение для Samsam Посмотреть профиль Найти все сообщения от Samsam
 
Регистрация: 24.04.2014
Сообщений: 100

да пустой
Ответить с цитированием
  #8 (permalink)  
Старый 28.04.2018, 20:55
Кандидат Javascript-наук
Отправить личное сообщение для Samsam Посмотреть профиль Найти все сообщения от Samsam
 
Регистрация: 24.04.2014
Сообщений: 100

Да это так. Но вопрос всё же в силе.

А вообще как именно работает эта функция ?

var xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', ....
Ответить с цитированием
  #9 (permalink)  
Старый 28.04.2018, 21:34
Кандидат Javascript-наук
Отправить личное сообщение для Samsam Посмотреть профиль Найти все сообщения от Samsam
 
Регистрация: 24.04.2014
Сообщений: 100

Сообщение от Rise Посмотреть сообщение
https://learn.javascript.ru/xhr-onprogress
Там внизу есть пример. Попробуйте выбрать и загрузить файл побольше.
то уведите что индексация прогресса за пару секунд закончится. хотя понятно что за это время файл не загрузится
Ответить с цитированием
  #10 (permalink)  
Старый 28.04.2018, 21:52
Кандидат Javascript-наук
Отправить личное сообщение для Samsam Посмотреть профиль Найти все сообщения от Samsam
 
Регистрация: 24.04.2014
Сообщений: 100

там нет ограничений
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка файлов ajax, в чем ошибка? shmelev AJAX и COMET 3 18.01.2018 23:25
Загрузка файлов на сервер (не хватает вывода ошибки) byFahrenheit Серверные языки и технологии 4 26.10.2016 20:55
Nodejs, busboy, загрузка нескольких файлов, не корректно вызывается событие 'finish' master_alf AJAX и COMET 1 07.10.2014 11:08
Загрузка БОЛЬШИХ файлов посредством ajax barcelona jQuery 7 12.10.2012 03:37
Загрузка файлов (ajax jquery) q13m jQuery 3 08.03.2012 19:18