Задать вопрос
@nickolay1967

Как предзагрузить и скачать большой файл в браузере?

Иногда на некоторых сайтах, при скачивании больших архивов (по несколько гигабайт) встречаю такую фичу: файл скачивается не сразу, а сначала как будто «предзагружается» несколько минут, кэшируется в браузере, отображается модальное окно на сайте с кастомным лоадером и сообщением что нельзя закрывать вкладку, а потом резко за секунду скаченный файл выпадает из браузера уже в папку на компьютере.

То есть при обычной загрузке большого файла он появляется в соответствующем разделе в Хроме, и лоадер отображается от Хрома. А в этом случае отображается окно на сайте, со своим лоадером, файл там формируется, а потом попадает в хром уже готовый. В обоих случаях скачивание длится одинаково (несколько минут).

Как называется эта технология, как гуглить?
  • Вопрос задан
  • 284 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@iljaGolubev
Ищите https://developer.mozilla.org/en-US/docs/Web/API/fetch
Скачать в фоне потом отдать как blob..
если сервер настроен нормально, то уже в кэше браузера будет.
// set preloader active
fetch("big_file.zip", { cache: "force-cache" })
.then(response => {
     /*  close preloader */
    return response.blob()
})
.then(blob => {
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
   //   .....
   // a.click()
  })
;


Можно навороченнее решение поискать через https://developer.mozilla.org/en-US/docs/Web/API/S... Fetch aip + cache
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы