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:05
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от Samsam
Хотя я даже не загружаю их. а просто хочу передать данные.
А в чем разница?
Ответить с цитированием
  #3 (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 показывает загрузку файла намного быстрее чем на самом деле ?
Ответить с цитированием
  #4 (permalink)  
Старый 28.04.2018, 18:21
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

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

файл ещё не загрузился а e.loaded выдаёт что загрузилось
Ответить с цитированием
  #6 (permalink)  
Старый 28.04.2018, 18:27
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от Samsam
файл ещё не загрузился
Как вы это определили?
Ответить с цитированием
  #7 (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('ВОТ ЗДЕСЬ Я ПОНИМАЮ ЧТО ФАЙЛ ЗАГРУЗИЛСЯ');
				}
		});


но прогресс бар быстрее заполняется
Ответить с цитированием
  #8 (permalink)  
Старый 28.04.2018, 18:42
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

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

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


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

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

Сообщение от Samsam
за 2-3 секунды
Локальный сервер наверно, а за сколько надо по сети же не передается?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка файлов 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