
20.10.2016, 00:53
|
|
Кандидат Javascript-наук
|
|
Регистрация: 29.10.2011
Сообщений: 132
|
|
|
Есть ли в JS средства наподобие сокетов или Curl?
Подскажите пожалуйста, есть ли какие-то сетевые функции в жс? В частности, возможно ли как-то контролировать процесс скачивания файла пользователем с целью отображения собственного прогрессбара? Или к примеру можно ли скачать средствами жс удаленный файл? Сделать нечто подобное while (!feof($f1)) fwrite($f2, fread($f1)); ?
|
|

20.10.2016, 01:15
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,618
|
|
|
1. Нет. Можно скачать в память браузера, а потом отдать пользователью, но это гейская практика.
2. xmlhttprequest/fetch
__________________
29375, 35
|
|

20.10.2016, 01:36
|
|
Кандидат Javascript-наук
|
|
Регистрация: 29.10.2011
Сообщений: 132
|
|
Сообщение от Aetae
|
1. Нет. Можно скачать в память браузера, а потом отдать пользователью, но это гейская практика.
2. xmlhttprequest/fetch
|
1. Как это скачать в память браузера? Поясни пожалуйста или ссылкой кинь.
2. Да точно, аякс, только вопрос - скачал я допустим файл обычным способом через xmlhttprequest, а как после этого вызвать диалог сохранения скаченного файла? Ну или клик по ссылке инициировать, только ссылка НА ЧТО?
|
|

20.10.2016, 01:53
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,618
|
|
|
1. См. пункт 2 из предыдущего поста.)
2. data:uri \ Blob, атрибут download.
__________________
29375, 35
|
|

20.10.2016, 02:05
|
|
Кандидат Javascript-наук
|
|
Регистрация: 29.10.2011
Сообщений: 132
|
|
Круто, спасибо! Всё понял, то что надо! 
|
|

20.10.2016, 02:08
|
|
Кандидат Javascript-наук
|
|
Регистрация: 29.10.2011
Сообщений: 132
|
|
|
Кстати, вопрос вдогонку - если есть большой буфер (скаченный файл) - если я сделаю buf = null; память освободится или нет? Или как правильно положено ее освободить?
|
|

20.10.2016, 02:11
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,618
|
|
Если просто буффер, то да. Но если создана ссылка на blob, то её необходимо освободить. Как и везде в javascript - объект не будет собран GC пока на него есть хотя бы одна ссылка.
__________________
29375, 35
|
|

20.10.2016, 02:26
|
|
Кандидат Javascript-наук
|
|
Регистрация: 29.10.2011
Сообщений: 132
|
|
Всё предельно понятно, теперь всё разрулено! 
|
|

20.10.2016, 03:22
|
|
Профессор
|
|
Регистрация: 12.04.2010
Сообщений: 557
|
|
|
Сообщение от iNfantry
|
|
контролировать процесс скачивания файла пользователем с целью отображения собственного прогрессбара
|
Интересно, зачем?
Когда файл скачивается традиционным способом, большинство современных браузеров и так показывают прогрессбар. Нахрена юзеру твой прогрессбар видеть?
И кстати, рассмотреный в топике вариант с блоком упирается в ограничения по размеру, что-то в районе 500 мб, по крайней мере полтора года назад так было, сейчас не знаю. К сожалению, аякс (пока) не умеет загружать прямо на диск, блоб формируется в оперативе. Потому на больших файлах отваливается.
|
|

20.10.2016, 05:56
|
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
|
Яростный Меч, где этот бар в ФФ? Было уже такое, я запомнил и когда закачивался бекап бд начал осматривать ФФ - никаких признаков жизни. Нажал Ctlr+J - увидел. Может я его спрятал этот бар?
ТСу. Прогресс на скачивание файла делается элементарно, ищи по слова js progress download
|
|
|
|