Как предзагрузить и скачать большой файл в браузере?
Иногда на некоторых сайтах, при скачивании больших архивов (по несколько гигабайт) встречаю такую фичу: файл скачивается не сразу, а сначала как будто «предзагружается» несколько минут, кэшируется в браузере, отображается модальное окно на сайте с кастомным лоадером и сообщением что нельзя закрывать вкладку, а потом резко за секунду скаченный файл выпадает из браузера уже в папку на компьютере.
То есть при обычной загрузке большого файла он появляется в соответствующем разделе в Хроме, и лоадер отображается от Хрома. А в этом случае отображается окно на сайте, со своим лоадером, файл там формируется, а потом попадает в хром уже готовый. В обоих случаях скачивание длится одинаково (несколько минут).
Как называется эта технология, как гуглить?
Дополнительно:
Ответы:
Ищите 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
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для предзагрузки и скачивания большого файла в браузере можно использовать атрибуты `download` и `href` элемента ``. Этот метод позволяет пользователю скачать файл, не открывая его в браузере.
Прежде всего, вам необходимо указать путь к файлу, который вы хотите предзагрузить и скачать. Этот путь будет использоваться в атрибуте `href`.
Пример кода для предзагрузки и скачивания файла:
<a href="путь_к_файлу/файл.zip" download>Скачать файл</a>
В данном примере, при клике на ссылку "Скачать файл", браузер предзагрузит файл `файл.zip` и предложит пользователю сохранить его на компьютер.
Также, если вы хотите предзагрузить файл без отображения ссылки для пользователя, вы можете использовать скрытый элемент `` и вызвать метод `click()` для этого элемента с помощью JavaScript.
Пример скрытой загрузки файла:
<a id="downloadLink" href="путь_к_файлу/файл.zip" download>Скачать файл</a> document.getElementById('downloadLink').click();
Таким образом, вы можете предзагрузить и скачать большой файл в браузере, облегчая процесс для пользователей вашего сайта.