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

Ссылка скопирована
1 ответ

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

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

Как называется эта технология, как гуглить?

Дополнительно:

Ответы:

Ищите 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()   }) ;

// 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

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Дмитрий К. Ответ

Для предзагрузки и скачивания большого файла в браузере можно использовать атрибуты `download` и `href` элемента ``. Этот метод позволяет пользователю скачать файл, не открывая его в браузере.

Прежде всего, вам необходимо указать путь к файлу, который вы хотите предзагрузить и скачать. Этот путь будет использоваться в атрибуте `href`.

Пример кода для предзагрузки и скачивания файла:

<a href="путь_к_файлу/файл.zip" download>Скачать файл</a>

<a href="путь_к_файлу/файл.zip" download>Скачать файл</a>

В данном примере, при клике на ссылку "Скачать файл", браузер предзагрузит файл `файл.zip` и предложит пользователю сохранить его на компьютер.

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

Пример скрытой загрузки файла:

<a id="downloadLink" href="путь_к_файлу/файл.zip" download>Скачать файл</a>
 
    document.getElementById('downloadLink').click();

<a id="downloadLink" href="путь_к_файлу/файл.zip" download>Скачать файл</a> document.getElementById('downloadLink').click();

Таким образом, вы можете предзагрузить и скачать большой файл в браузере, облегчая процесс для пользователей вашего сайта.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно