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

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

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

Как видите я останавливаю загрузку, вызывая метод abort(). Как ни странно останавливается именно та загрузка, которая находится рядом с кнопкой, хотя по идее должна остановиться последняя. Это конечно хорошо, но мне интересно, как он определяет, какую загрузку я хочу остановить? Может созданные xhr как-то индексируются?
Но вопрос не в этом. Мне нужно создать еще одну кнопку, с помощью которой можно будет остановить все текущие загрузки. Как это сделать?
  • Вопрос задан
  • 2658 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
xhr - глобальная переменная я так понимаю, и хранит она только последний запрос (так как при добавлении нового просто затирает старый указатель).

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

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

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