Выполните задачи:
Чтобы получить зачёт, выполните все три задачи. Пришлите на проверку все три задачи сразу, не частями.
Работы должны соответствовать принятому стилю оформления кода.
Любые вопросы по задачам задавайте в чате учебной группы.
Посмотрите, какие события есть в свойстве upload каждого экземпляра XMLHttpRequest: XMLHttpRequest.upload.
У XHR есть события для индикации загрузки файлов. Но когда принимаемые от сервера данные большие, есть отдельные события индикации статуса загрузки данных: progress.
Посмотрите список основных событий XHR:
Мы можем отменять ранее запущенный запрос к серверу. Это возможно с помощью метода abort().
А ещё с помощью свойства timeout можно задавать таймаут соединения.
Обратите внимание на свойство responseType: responseType.
Ответ с сервера можно получить в разном виде. На значения в свойствах ниже влияет то, что вы запишете в responseType:
Чтобы познакомиться с более современным интерфейсом асинхронных запросов, изучите тему обещаний.
Вот несколько материалов по ней, а подробнее мы рассмотрим тему в следующем курсе.
Давайте посмотрим на альтернативный вариант формирования запросов — функцию fetch(), которая является частью BOM, как и XMLHttpRequest: