Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.10.2016, 12:55
Кандидат Javascript-наук
Отправить личное сообщение для iNfantry Посмотреть профиль Найти все сообщения от iNfantry
 
Регистрация: 29.10.2011
Сообщений: 132

Сообщение от warren buffet Посмотреть сообщение
ТСу. Прогресс на скачивание файла делается элементарно, ищи по слова js progress download
Не особо то и ищется, я уже сделал такое с помощью обычного аякса и коллбака на онпрогресс, есть еще какие-то варианты?
Ответить с цитированием
  #12 (permalink)  
Старый 20.10.2016, 13:04
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

В принципе - есть: пользователь скачивает файл по персональной уникальной ссылке. Сервер соединён со скриптом на странице по вебсокету(или классической ему альтернативе) и риалтайм посылает в js отчёты по текущему скачиваемому фрагменту. Немного вычислений и прогрессбар готов. Теоретически это возможно, а вот как сделать на практике со стороны сервера - сходу не скажу. С другой стороны, сервер - не моя забота, хехехе.
__________________
29375, 35
Ответить с цитированием
  #13 (permalink)  
Старый 20.10.2016, 13:39
Кандидат Javascript-наук
Отправить личное сообщение для iNfantry Посмотреть профиль Найти все сообщения от iNfantry
 
Регистрация: 29.10.2011
Сообщений: 132

Кстати, только щас обнаружил косяк по основному вопросу (со скачкой файла) файл то бьётся! Размер примерно в два раза больше получается чем реальный, можешь подсказать что не так?

$.ajax({
	url: obj.data('url'),
	type: 'GET',
	xhr: function(){
		var xhr = $.ajaxSettings.xhr();
		xhr.onprogress = function(event) {
			jq_span.text(Math.ceil(event.loaded / event.total * 100) + '%');
		}
		return xhr;
	},
	success: function(body) {
		var blob = new Blob([body], {type: 'audio/mp3'});
		var url = URL.createObjectURL(blob);
		var jq_a = $('<a href="' + url + '" download="' + obj.data('title') + '.mp3">dl</a>');
		jq_a.hide().insertAfter(obj);
		jq_a[0].click();
		setTimeout(function(){window.URL.revokeObjectURL(url)}, 100);
	}
});
Ответить с цитированием
  #14 (permalink)  
Старый 20.10.2016, 14:00
Кандидат Javascript-наук
Отправить личное сообщение для iNfantry Посмотреть профиль Найти все сообщения от iNfantry
 
Регистрация: 29.10.2011
Сообщений: 132

И сам же опять разобрался)) Просто использовал xmlhttprequest напрямую с responsetype = 'blob', только хотелось бы еще узнать как это с помощью самого jquery ajax сделать, чтоб "все как у людей" было...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript - классы, они есть или их нету в Javascript? Golovastik Javascript под браузер 39 15.02.2013 10:38
Найти проблему с jQuery или писать js? Saladdin Элементы интерфейса 0 17.03.2011 17:02
Что лучше: библиотека или чистый JS? `p r o x y Библиотеки/Тулкиты/Фреймворки 4 26.11.2010 11:16
Стоит ли учить JS? Или что то другое? aleks_valery Элементы интерфейса 1 06.08.2010 19:33
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37