Можно ли программно отменить / остановить начатую загрузку с JavaScript? - PullRequest
1 голос
/ 13 января 2020

В нашем приложении реализован специальный менеджер загрузок.

Таким образом, на самом деле это означает, что когда пользователь начинает загрузку ресурса, у него / нее есть возможность отменить его через кнопку пользовательского интерфейса приложения, которая на самом деле отправляет какое-либо событие на сервер для отмены загрузки (соединение разрывается и т. д. c).

Но с недавнего времени Chrome добавлено автоматическое возобновление неудачных загрузок, поэтому тот же запрос возобновляется для повторной загрузки из Chrome Диспетчер загрузки, потому что Chrome не может различить guish что пользователь / сервер преднамеренно отменил HTTP-соединение, чтобы оно снова его отозвало.

В настоящее время мы загружаем ресурсы с использованием IFrame, но после запуска загрузки браузером изменение атрибута IFrame sr c не является актуально больше. Я пытался использовать <a href='...' download>, но проблема та же.

Может быть, есть какой-нибудь API по крайней мере для Chrome? (На самом деле есть такие расширения Chrome, но это не так)

Ответы [ 2 ]

1 голос
/ 13 января 2020

Вы не можете контролировать загрузки, которые управляются менеджером загрузок браузера.

Если вы хотите контролировать загрузку, вам нужно получить файл JavaScript, например, используя Streams API .

После загрузки данных вы можете передать этот файл в менеджер загрузок браузера.

Каждая из этих задач может быть решена различными способами.

0 голосов
/ 13 января 2020

Не могли бы вы сделать что-то вроде добавления уникального ключа к URL для каждого запроса на скачивание? Когда пользователь отменяет загрузку, вы аннулируете ключ, так что URL-адрес не может быть снова использован для загрузки этого ресурса, и в процессе Chrome не может возобновить загрузку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...