@Dimazsever

Как остановить все загрузки, созданные через XmlHttpRequest?

После каждой новой загрузки создается новый XmlHttpRequest объект. Если быть точнее, то перезаписывается переменная, которая содержит этот объект. Также создаются элементы, в которые записывается прогресс загрузки. Создаются кнопки, на которые вешаются обработчики для остановки загрузки.
btn.addEventListener("click",function(){
xhr.abort() {
this.previousElementSibling.innerHTML = "Загрузка отменена.";
},false);

Как видите я останавливаю загрузку, вызывая метод abort(). Как ни странно останавливается именно та загрузка, которая находится рядом с кнопкой, хотя по идее должна остановиться последняя. Это конечно хорошо, но мне интересно, как он определяет, какую загрузку я хочу остановить? Может созданные xhr как-то индексируются?
Но вопрос не в этом. Мне нужно создать еще одну кнопку, с помощью которой можно будет остановить все текущие загрузки. Как это сделать?
  • Вопрос задан
  • 2622 просмотра
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
xhr - глобальная переменная я так понимаю, и хранит она только последний запрос (так как при добавлении нового просто затирает старый указатель).

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

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

Войти через центр авторизации
Похожие вопросы