Get запрос — как отправить изображение на сервер ( с помощью Swift )


Содержание

Как отправить POST-запрос в Swift с переменной

Я пытаюсь отправить запрос POST на веб-сервер, однако значение, которое я пытаюсь отправить, находится в переменной с именем TemperatureValue. Веб-сервер ищет переменную POST «температура». Вот как я объявляю свои postData. Как мне передать эту переменную?

Остальная часть кода для POST приведена ниже, но мой главный вопрос заключается в том, как отформатировать вышеупомянутое, чтобы разрешить сохранение моей переменной variableValue в postData.

Решение

Вы можете использовать интерполяцию строк:

Если temperatureValue это необязательно, однако, вы должны развернуть его.

Также обратите внимание, что этот очень простой пример работает, только если имеет дело с очень простыми «значениями» (например, просто буквенно-цифровыми без пробелов или специальных символов). Если вы возьмете этот шаблон и попробуете его с общими строками, вы должны будете уйти в процентах от значения. Но для простых числовых значений выше будет достаточно.

Отправка HTTP (не HTTPS) запроса в Swift 2.0 с использованием NSURLSession

Objective-C
Objective-C
30.11.2015, 17:52

Отправка запроса на https://m.vk.com
Всем привет! Не когда не работал с Вк раньше и не могу что то понять что не так делаю , Запрос.

Отправка Post запроса на https сайт
Ещё раз добрвый день форумчане.Опять возникла проблема нужно отправить post запрос на https сайт.

Сокеты. Отправка GET-запроса по HTTPS и получение ответа от сервера
Использую сокеты для отправки GET-запроса и получения HTML-кода запрашиваемой страницы. Все красиво.

Отправка HTTP запроса
Здравствуйте! Помогите разобраться с проблемой. Я пишу бота для игры heroeswm.ru Суть бота.

Отправка HTTP запроса
Я так понимаю, для того что бы из приложения произвести какие либо действия на сайте, необходимо.

Как создать GET, POST и PUT запрос в Swift?

Я могу подключиться к серверу синхронно с этим фрагментом кода в стриже.

Это хорошо только для получения информации сразу, но как бы я использовать GET, POST и PUT с Swift. Независимо от того, сколько я ищу Я ​​не могу найти хороший учебник или пример о том, как выполнить эти.

Я создал функцию для проекта, с правильными аргументами вы можете оставить, поставить и получить

Это, как использовать функцию:

  • корма -> Это ссылка на сервер
  • маркер (опция) -> Некоторые запросы необходимо фишку в целях безопасности
  • параметры (опция) -> Все эти параметры можно передать на сервер. (Это словарь кстати)
  • метод (по желанию) -> Здесь Вы можете выбрать, какой тип запроса вы хотите ( «GET», «POST», «PUT»)
  • закрытие завершения -> Здесь вы передаете функцию, которая собирается выполнить, когда запрос завершен. В замыкании вы получите два параметра: «Успех» является BOOL, что указывает на то, если запрос был успешным, и «данные». Это словарь со всеми данными ответа. (Это может быть нулевым)

Надеюсь, я помог. И простите за мой английский

ОБОРУДОВАНИЕ
ТЕХНОЛОГИИ
РАЗРАБОТКИ

Блог технической поддержки моих разработок

Урок 71. Продолжение темы HTTP-протокола. Передача данных от клиента WEB-серверу с помощью GET-запросов.

В уроке расскажу о принципе передачи данных от клиента WEB-серверу с помощью GET-запросов. Разработаем несколько вариантов учебных серверов с управлением из окна браузера.

Часто возникает задача не только получать информацию с WEB-сервера, но и передать на него данные. Это может быть управление физическими устройствами, подключенными к серверу, регистрационные данные, файлы для хранения, обратная связь с пользователями и т.п. Примеров множество.

Сделать это можно с помощью GET и POST-запросов. В этом уроке будем говорить о GET-запросах.

GET-запросы.

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

Для пользователя это выглядит так.

  • Он набираем в адресной строке браузера информацию о запрашиваемом ресурсе, т.е. идентификатор ресурса (URI).
  • Браузер посылает запрос на сервер по указанному адресу.
  • Сервер присылает в ответ нужную информацию.

GET-запрос это передача данных через идентификатор ресурса (URI). Для пользователя это посылка данных непосредственно в адресной строке браузера.

Давайте разберемся, что мы там передаем.

URI, URL и URN.

Подробнее об URI и его составляющих.

URI — (Uniform Resource Identifier) унифицированный идентификатор ресурса. Определяет полную адресную информацию для доступа к ресурсу. Т.е. к какому WEB-серверу надо обратиться с запросом, и что с этого сервера получить. В общем случае URI состоит из URL и URN.

URL – (Uniform Resource Locator) унифицированный определитель местонахождения ресурса. Это адрес ресурса в Интернете (IP-адрес или доменное имя) и способ обращения к нему. Определяет местонахождения сервера в глобальной сети.

URN – (Unifrorm Resource Name) унифицированное имя ресурса. Идентифицирует ресурс в определенном логическом пространстве, не указывая его местоположение. В нашем случае определяет, что конкретно мы запрашиваем с WEB-сервера.

Например, такой URI:

означает, что мы хотим:

  • по протоколу HTTP;
  • послать запрос на сервер с доменным именем mypractic.ru;
  • на получение файла urok-70-protokol-http-sozdanie-web-servera-na-arduino-ispolzovani-html-koda.html.

Думаю, вы поняли, что в этом URI:

  • URL — http://mypractic.ru/
  • URN — urok-70-protokol-http-sozdanie-web-servera-na-arduino-ispolzovani-html-koda.html

К WEB-серверу запрос попадает по IP-адресу или доменному имени из URI.

  • Для доставки запроса на сервер используется адресная информация URL.
  • URN игнорируется сетью, он интерпретируется сервером.

Т.е. все, что мы в адресной строке браузера после IP-адреса или доменного имени отделим символом ”/” будет доставлено на сервер. Эта информация никак не повлияет на передачу запроса и останется в URI стартовой строки HTTP-запроса.

Так почему бы не использовать URN для передачи данных от клиента на WEB-сервер. Просто сервер должен понимать, что это не запрос ресурса, а информация для него. Но это уже в наших руках.

Давайте проверим вышесказанное с помощью первой программы из предыдущего урока. Напомню, что она выводит в последовательный порт все, что поступает на сервер.

Зарегистрируйтесь и оплатите. Всего 40 руб. в месяц за доступ ко всем ресурсам сайта!

Я набрал URI: http://192.168.1.10/test_URN_for_GET_request

Сервер принял URN: test_URN_for_GET_request .

Принято набор параметров, передаваемых на сервер, начинать с символа ”?” и разделять знаком ”&”. Сами параметры записываются в формате: параметр=значение. Это правило обязательно при обработке запроса на языке PHP.

К недостаткам GET-запросов можно отнести.

  • Количество передаваемых данных всегда ограничено со стороны сервера и, как правило, не превышает 1024. Конечно, передать изображение, большие файлы таким образом нельзя.
  • Некоторые браузеры некорректно передают кириллические символы. Лучше в GET-запросах их не использовать. Можно передавать коды символов. Для этого используется знак ”%”, за ним должен следовать шестнадцатеричный код.
  • Не все символы можно использовать. Например, ”&” и ”?” зарезервированы, их передавать нельзя. Выход – передавать коды символов.
  • В GET-запросах строка информации находится в открытом виде. URI не является закрытой информацией и часто сохраняется в различных логах, историях браузеров и т.п. Поэтому передача секретных данных через GET-запросы недопустима.

Несмотря на недостатки, передача данных на сервер через GET-запросы используется довольно часто. В некоторых случаях другого варианта просто нет или он достаточно сложен.

Например, при регистрации пользователя на сайте ему приходит письмо со ссылкой активации аккаунта. Эта ссылка содержит идентификатор аккаунта, т.е. является GET-запросом.

Еще пример. В личный кабинет на сайте я вхожу по ссылке, содержащей номер моего аккаунта: http://mypractic.ru/account?user=1

Реализация сервера с управлением от GET-запросов.

По аналогии с предыдущим уроком подключим светодиод ко 2 выводу платы. Наша учебная цель – создать WEB-сервер, который позволяет управлять этим светодиодом с помощью любого браузера.

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

Возьмем за основу скетч WEB-сервера sketch_70_2 из предыдущего урока.

Зарегистрируйтесь и оплатите. Всего 40 руб. в месяц за доступ ко всем ресурсам сайта!

char urnFromRequest[51]; // строка URN из запроса
boolean urnReceived= false; // признак URN принят
unsigned int indUrn; // адрес в строке URN

Для приема URN предназначена текстовая строка urnFromRequest . Введем ограничение на длину URN – 50 символов, поэтому зарезервируем на нее 51 символ. Лишний символ на признак конца строки.

В цикл приема символов заголовка вставим блок выделения URN.

// прием URN
if( urnReceived == false ) <

if( indUrn == 0xffff ) <
// пропуск метода
if( tempChar == ‘/’ ) indUrn=0;
>
else <
// запись строки
if( tempChar == ‘ ‘ ) <
// URN закончен
urnFromRequest[indUrn]=0;
urnReceived = true;
>
else <
// загрузка символа URN в строку
urnFromRequest[indUrn] = tempChar;
indUrn++;
if( indUrn > 49 ) <
// переполнение
urnFromRequest[50]=0;
urnReceived = true;
>
>
>
>

  • Проверяем, не закончился ли URN.
  • При начальном значении индекса строки indUrn равном 0xffff, пропускаем символы метода, ждем начала символов URN.
  • Если встретился пробел ‘ ‘, завершаем прием URN.
  • Загружаем символы URN в текстовую строку urnFromRequest .

В ответе клиенту передаем строку URN.


client.println(» «);
client.println(urnFromRequest);
client.println(» «);

Передаем URN в последовательный порт.

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

if (client) <
flagEmptyLine = true;
urnReceived = false;
indUrn=0xffff;

Полностью скетч программы можно загрузить по ссылке:

Зарегистрируйтесь и оплатите. Всего 40 руб. в месяц за доступ ко всем ресурсам сайта!

Проверим. Послал запрос.

Получил URN в браузере и в мониторе последовательного порта.

Дальше будем работать со строкой urnFromRequest .

Управление светодиодом сервера из адресной строки браузера.

Для начала сделаем самый простой вариант. Будем управлять светодиодом из адресной строки браузера. Создадим WEB-сервер, который:

  • Получает запрос от клиента.
  • При URN, равном “ON”:
    • включает светодиод;
    • передает клиенту сообщение ”Светодиод включен”.
  • При URN, равном “OFF”:
    • выключает светодиод;
    • передает клиенту сообщение ”Светодиод выключен”.

Попросту говоря, в адресной строке браузера надо набрать:

  • для включения светодиода — http://192.168.1.10/ON ;
  • для выключения — http://192.168.1.10/OFF .

За основу возьмем предыдущий скетч. К нему необходимо добавить блок сравнения строки urnFromRequest со строками ”ON” и ”OFF”. И в зависимости от результата зажигать или гасить светодиод.

Воспользуемся стандартной функцией сравнения строк strcmp() .

int strcmp (const char * S1, const char * S2)

Функция сравнивает две строки с указателями S1 и S2.

  • 0, если строки равны;
  • — 1, если символы строки S1 раньше встречаются в алфавите, чем символы строки S2;
  • 1, если символы строки S2 раньше встречаются в алфавите, чем символы строки S1.

В HTML-ответ клиенту вставим блок, который управляет светодиодом и формирует сообщения.

if( strcmp(urnFromRequest, «ON») == 0) <
digitalWrite(2, HIGH);
client.println(F(«Светодиод включен»));
>
else if( strcmp(urnFromRequest, «OFF») == 0) <
digitalWrite(2, LOW);
client.println(F(«Светодиод выключен»));
>
else client.println(F(«Недопустимая команда»));

Полностью программу можно загрузить по ссылке:

Зарегистрируйтесь и оплатите. Всего 40 руб. в месяц за доступ ко всем ресурсам сайта!

Проверяем. Все работает.

Управление светодиодом сервера из окна браузера.

Управлять светодиодом из адресной строки браузера не очень удобно. Давайте создадим WEB-сервер, позволяющий включать и выключать светодиод из окна браузера с помощью объектов HTML.

Все изменения программы коснутся только HTML-блока ответа клиенту. Мы будем передавать браузеру с сервера графические HTML-компоненты, которые он отобразит на экране компьютера. Эти компоненты должны формировать известные нам URI:

  • для включения светодиода — http://192.168.1.10/ON ;
  • для выключения — http://192.168.1.10/OFF .

Самый простой вариант – ссылки.

Создадим их с помощью HTML-редактора. Я, как в предыдущем уроке, использовал онлайн HTML-редактор Vulk. Вы можете воспользоваться любым другим редактором или непосредственно использовать код HTML.

Я упростил HTML-код, убрал блоки div. Получилось:

Экранировал кавычки, сделал проверку состояния светодиода и вставил код в блок HTML-ответа.

// управление светодиодом
if( strcmp(urnFromRequest, «ON») == 0) digitalWrite(2, HIGH);
else if( strcmp(urnFromRequest, «OFF») == 0) digitalWrite(2, LOW);

client.println(F(» «));
client.println(F(» «));
// состояние светодиода
if( digitalRead(2) == HIGH ) client.println(F(«Светодиод включен»));
else client.println(F(«Светодиод выключен»));
client.println(F(«

Вот полный скетч:

Зарегистрируйтесь и оплатите. Всего 40 руб. в месяц за доступ ко всем ресурсам сайта!

Обращаемся к серверу http://192.168.1.10 без URN.

Теперь управлять светодиодом можно нажатием на ссылки.

Украшать интерфейс с пользователем можно до бесконечности. Давайте сделаем управление кнопками и остановимся на этом.

Заменим только одну строку.

Зарегистрируйтесь и оплатите. Всего 40 руб. в месяц за доступ ко всем ресурсам сайта!

Интерфейс с пользователем стал ближе к общепринятому.

Можно добавить таблицы, красивые кнопки, раскрасить поля, нарисовать светодиод и зажигать его… Это не сложно. Учите HTML.

Как видите, все достаточно просто. Надеюсь, выражение WEB-сервер превратилось для вас из чего-то пугающе сложного в вполне доступную для реализации задачу.

В следующем уроке продолжим тему HTTP-протокола. Научимся использовать для передачи данных на сервер POST-запросы. Разработаем простой WEB-клиент.

Как отправить файл на сервер с помощью multipart / form-date через Swift

Как отправить файл на сервер с помощью языка Swift? Я отправляю файл на сервер, а глобальная переменная $ _FILES (PHP) не видит загруженный файл. В этом случае, если я отправлю запрос из любого другого пакета отправителя (например, ARC). Затем глобальный массив успешно отображает переданный POST методом файла. Что не так с этим?

А вот функция, которая создает тело запроса

example результат отправляется через ARC

1 ответ

Я использую библиотеку Alamofire. Хорошо документированы, см., Например:

Отправка изображения на сервер с параметрами в Swift

Я пытаюсь отправить изображение на сервер с параметром json используя Alamofire. Но на сервере они могут получить изображение, а не тот Json я посылаю. Ниже приведен код, который я использую:

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

2 ответа

Я решил свою проблему, отправив параметры в виде JSON String вместо пар ключ-значение.

И при отправке его на сервер я использовал

После отправки параметров в виде JSON String данные были успешно загружены на сервер.

Привет, у меня нет знаний о Swift. Но в соответствии с вашей проблемой, сервер, получающий изображение, которое означает, что URL-адрес является правильным. так

1) сначала проверьте данные вашей отправки. возможно, вы отправляете неверный тип данных. Например: серверная часть <словарь [словарь]>, ваша отправка <словарь>, например

2) проверьте поля заголовка.

3) проверить название объектов заголовка поля и ключи (заглавные или маленькие) каждой буквы.

4) наконец добавьте приведенный ниже код в ваш проект .plist файлы. Добавьте к каждому списку в вашем проекте.

чтобы добавить это, щелкните правой кнопкой мыши на .plist, затем откройте его как исходный код. Скопируйте вышеуказанные строки и вставьте их перед строкой перед «

просто попробуйте это .. Я не уверен в этом, это будет полезно.

Как сделать post запрос swift?

Существует такой код:

который должен выполнять запрос по api yandex переводчика
и возвращать в JSON или XLM формате
В общем, проблема заключается в то, что я не понимаю как правильно отправить POST — запрос на свифте (я вообще этого никогда не делал ни на одном языке)


  • Вопрос задан более двух лет назад
  • 1820 просмотров

Собственно лови:
Pod Alamofire
https://cocoapods.org/?q=alamofire
Pod SwiftyJSON
https://cocoapods.org/?q=json
Pod SwiftyXMLParser
https://cocoapods.org/?q=lang%3Aswift%20XML
Ну и в добавок поставь RealmSwifty для хранения данных
https://cocoapods.org/?q=Realm
Думаю, что разберетесь как их закинуть в проект.

И да когда будешь гонять на симуляторе в plist’e разреши соединения с сетью.

Get запрос — как отправить изображение на сервер ( с помощью Swift ) ?

Принцип отправки данных может отличаться в различных ситуациях. Рассмотрим эти ситуации.

Отправка GET-запроса

GET-запрос характеризуется тем, что данные могут отправляться в строке запроса:

Для отправки берем свойства объекта user и формируем из их значений сроку с параметрами: «name=» + user.name + «&age=»+user.age . Затем эта строка добавляется к строке запроса в методе open(«GET», «http://localhost:8080/postdata.php?»+body)

Предполагается, что данные отправляются скрипту на языке php postdata.php, который может иметь, например, следующее содержание:

Конкретная технология стороны сервера тут не важна. И в качестве тестирования можно взять любую другую технологию. Например, ASP.NET MVC. Метод контроллера в ASP.NET MVC, который принимает данные, мог бы выглядеть следующим образом:

Кодирование параметров

Все отправляемые в GET-запросе параметры разделяются знаком амперсанда(&). Но что, если какой-нибудь параметр имеет знак амперсанда. Например,

В этом случае при получении параметров скрипт на стороне сервера может неправильно обработать данные и неправильно извлечь параметры. Поэтому, чтобы кодировать все передаваемые данные, нужно применять функцию encodeURIComponent() :

При этом строка «Tom&Tim» будет кодирована в следующую строку: «Tom%26Tim».

При необходимости мы можем выполнить обратное декодирование с помощью функции decodeURIComponent() :

POST-запросы

Отправка данных в POST-запросах будет немного отличаться:

Для отправки данных методом POST надо установить заголовок Content-Type с помощью метода setRequestHeader() . В данном случае заголовок имеет значение application/x-www-form-urlencoded .

Отправка форм. FormData

Начиная со спецификации XMLHttpRequest2 в JavaScript появился новый объект — FormData , который позволяет сериализовать данные формы для ее последующей отправки. При этом нам даже необязательно создавать форму в коде html, мы можем создать ее динамически в JavaScript:

Для добавления данных у объекта FormData используется метод append(‘имя_параметра’, значение) . При этом никакие заголовки указывать не надо.

Также мы можем определить форму в html и использовать ее для отправки:

Для сериализации всех полей формы нам достаточно передать объект формы в конструктор FormData: var formData = new FormData(form);

Как отправить изображение с помощью POST-запроса в iOS

Мне нужно отправить изображение на мой сервер с помощью post request. Я написал необходимый PHP код для него. Но как я должен отправить его с моего устройства? Я видел asihttprequest framework, но он устарел, и AFNetworking усложняет вещи. Если бы я мог, я хотел бы отправить изображение через GET request, но я просто не знаю, как.

1 ответ

Я создал подкласс, который позволяет создавать простые асинхронные почтовые запросы и может быть найден здесь: https://github.com/MaxKDevelopment/MKNetwork .

Чтобы использовать его для загрузки изображения, все, что вам нужно сделать, это добавить данные изображения в качестве параметра к запросу:

Или вы можете посмотреть в ASIHTTPRequest (ASIFormDataRequest): http://allseeing-i.com/ASIHTTPRequest/

Затем инициализируйте переменную ASIFormDataRequest со значением POST, заданным как UIImage.

Получение данных с сервера

Другой очень распространенной задачей в современных веб-сайтах и ​​приложениях является получение отдельных элементов данных с сервера для обновления разделов веб-страницы без необходимости загрузки всей новой страницы. Эта, казалось бы, небольшая деталь оказала огромное влияние на производительность и поведение сайтов, поэтому в этой статье мы объясним концепцию и рассмотрим технологии, которые делают это возможным, например XMLHttpRequest и API Fetch.

Необходимые условия: Основы JavaScript (см. первые шаги, структурные элементы, объекты JavaScript), основы клиентских API
Задача: Узнать, как извлекать данные с сервера и использовать их для обновления содержимого веб-страницы.

В чем проблема?

Первоначальная загрузка страницы в Интернете была простой — вы отправляли запрос на сервер web-сайта, и если всё работает, как и должно, то вся необходимая информация о странице будет загружена и отображена на вашем компьютере.

Проблема с этой моделью заключается в том, что всякий раз, когда вы хотите обновить любую часть страницы, например, чтобы отобразить новый набор продуктов или загрузить новую страницу, вам нужно снова загрузить всю страницу. Это очень расточительно и приводит к плохому пользовательскому опыту, особенно по мере того, как страницы становятся все более сложными.

Появление Ajax

Это привело к созданию технологий, позволяющих веб-страницам запрашивать небольшие фрагменты данных (например, HTML, XML, JSON или обычный текст) и отображать их только при необходимости, помогая решать проблему, описанную выше.

Это достигается с помощью таких API, как XMLHttpRequest или — более новой — Fetch API. Эти технологии позволяют веб-страницам напрямую обрабатывать запросы HTTP для определенных ресурсов, доступных на сервере, и форматировать результирующие данные по мере необходимости перед их отображением.

Примечание: Вначале эта общая техника была известна как Асинхронный JavaScript и XML (Ajax), поскольку она, как правило, использовала XMLHttpRequest для запроса данных XML. В наши дни это обычно не так (вы, скорее всего, будете использовать XMLHttpRequest или Fetch для запроса JSON), но результат все тот же, и термин «Ajax» по-прежнему часто используется для описания этой техники.

Модель Ajax предполагает использование веб-API в качестве прокси для более разумного запроса данных, а не просто для того, чтобы браузер перезагружал всю страницу. Давайте подумаем о значении этого:

  1. Перейдите на один из ваших любимых сайтов, богатых информацией, таких как Amazon, YouTube, CNN и т.д., и загрузите его.
  2. Теперь найдите что-нибудь, например, новый продукт. Основной контент изменится, но большая часть информации, подобной заголовку, нижнему колонтитулу, навигационному меню и т. д., останется неизменной.

Это действительно хорошо, потому что:

  • Обновления страницы намного быстрее, и вам не нужно ждать перезагрузки страницы, а это означает, что сайт работает быстрее и воспринимается более отзывчивым.
  • Меньше данных загружается при каждом обновлении, что означает меньшее потребление пропускной способности. Это не может быть такой большой проблемой на рабочем столе в широкополосном подключении, но это серьезная проблема на мобильных устройствах и в развивающихся странах, которые не имеют повсеместного быстрого интернет-сервиса.

Чтобы ускорить работу, некоторые сайты также сохраняют необходимые файлы и данные на компьютере пользователя при первом обращении к сайту, а это означает, что при последующих посещениях они используют локальные версии вместо загрузки свежих копий, как при первой загрузке страницы. Содержимое загружается с сервера только при его обновлении.

Основной запрос Ajax

Давайте посмотрим, как обрабатывается такой запрос, используя как XMLHttpRequest , так и Fetch. В этих примерах мы будем запрашивать данные из нескольких текстовых файлов и использовать их для заполнения области содержимого.

Этот набор файлов будет действовать как наша поддельная база данных; в реальном приложении мы с большей вероятностью будем использовать серверный язык, такой как PHP, Python или Node, чтобы запрашивать наши данные из базы данных. Здесь, однако, мы хотим сохранить его простым и сосредоточиться на стороне клиента.

XMLHttpRequest

XMLHttpRequest (который часто сокращается до XHR) является довольно старой технологией сейчас — он был изобретен Microsoft в конце 1990-х годов и уже довольно долго стандартизирован в браузерах.

Чтобы начать этот пример, создайте локальную копию ajax-start.html и четырех текстовых файлов — verse1.txt, verse2.txt, verse3.txt и verse4.txt — в новом каталоге на вашем компьютере. В этом примере мы загрузим другое стихотворение (который вы вполне можете распознать) через XHR, когда он будет выбран в выпадающем меню.

Обслуживание вашего примера с сервера

Некоторые браузеры (включая Chrome) не будут запускать запросы XHR, если вы просто запускаете пример из локального файла. Это связано с ограничениями безопасности (для получения дополнительной информации о безопасности в Интернете, ознакомьтесь с Website security).

Чтобы обойти это, нам нужно протестировать пример, запустив его через локальный веб-сервер. Чтобы узнать, как это сделать, прочитайте Как настроить локальный тестовый сервер?

Fetch

API-интерфейс Fetch — это, в основном, современная замена XHR — недавно он был представлен в браузерах для упрощения асинхронных HTTP-запросов в JavaScript, как для разработчиков, так и для других API, которые строятся поверх Fetch.

Давайте преобразуем последний пример, чтобы использовать Fetch!

Сделайте копию своего предыдущего готового каталога примеров. (Если вы не работали над предыдущим упражнением, создайте новый каталог и внутри него создайте копии xhr-basic.html и четырех текстовых файлов — verse1.txt, verse2.txt, verse3.txt и verse4.txt.)

Внутри функции updateDisplay() найдите код XHR:

Замените весь XHR-код следующим:

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

Итак, что происходит в коде Fetch?

Прежде всего, мы вызываем метод fetch() , передавая ему URL-адрес ресурса, который мы хотим получить. Это современный эквивалент request.open() в XHR, плюс вам не нужен эквивалент .send() .

После этого вы можете увидеть метод .then() , прикреплённый в конец fetch() — этот метод является частью Promises — современная функция JavaScript для выполнения асинхронных операций. fetch() возвращает обещание, которое разрешает ответ, отправленный обратно с сервера, — мы используем .then() для запуска некоторого последующего кода после того, как обещание будет разрешено, что является функцией, которую мы определили внутри нее. Это эквивалент обработчика события onload в XHR-версии.

Эта функция автоматически передает ответ от сервера в качестве параметра, когда обещает fetch() . Внутри функции мы берем ответ и запускаем его метод text() , который в основном возвращает ответ как необработанный текст. Это эквивалент request.responseType = ‘text’ в версии XHR.

Вы увидите, что text() также возвращает обещание, поэтому мы привязываем к нему другой .then() , внутри которого мы определяем функцию для получения необработанного текста, который обещает решение text() .

Внутри функции внутреннего обещания мы делаем то же самое, что и в версии XHR, — устанавливаем текстовое содержимое

В первой строке говорится: «Получить ресурс, расположенный по адресу url» (fetch(url) ) и «затем запустить указанную функцию, когда обещание будет разрешено» ( .then(function() < . >) ). «Resolve» означает «завершить выполнение указанной операции в какой-то момент в будущем». Указанная операция в этом случае заключается в извлечении ресурса с указанного URL (с использованием HTTP-запроса) и возврата ответа для нас, чтобы что-то сделать.

Фактически, функция, переданная в then() , представляет собой кусок кода, который не запускается немедленно — вместо этого он будет работать в какой-то момент в будущем, когда ответ будет возвращен. Обратите внимание, что вы также можете сохранить свое обещание в переменной и цепочку .then() вместо этого. Ниже код будет делать то же самое:

Поскольку метод fetch() возвращает обещание, которое разрешает HTTP-ответ, любая функция, которую вы определяете внутри .then() , прикованная к концу, будет автоматически передаваться как параметр. Вы можете вызвать параметр, который вам нравится — приведенный ниже пример будет работать:

Но имеет смысл называть параметр тем, что описывает его содержимое!

Теперь давайте сосредоточимся только на функции:

Объект ответа имеет метод text() , который берет необработанные данные, содержащиеся в теле ответа, и превращает его в обычный текст, который является форматом, который мы хотим в нем А также возвращает обещание (которое разрешает полученную текстовую строку), поэтому здесь мы используем другой .then() , внутри которого мы определяем другую функцию, которая диктует что мы хотим сделать с этой текстовой строкой. Мы просто устанавливаем свойство textContent элемента

Многие разработчики любят этот стиль больше, поскольку он более плоский и, возможно, легче читать для более длинных цепочек обещаний — каждое последующее обещание приходит после предыдущего, а не внутри предыдущего (что может стать громоздким). Единственное отличие состоит в том, что мы должны были включить оператор return перед response.text() , чтобы заставить его передать результат в следующую ссылку в цепочке.


Какой механизм следует использовать?

Это действительно зависит от того, над каким проектом вы работаете. XHR существует уже давно и имеет отличную кросс-браузерную поддержку. Fetch and Promises, с другой стороны, являются более поздним дополнением к веб-платформе, хотя они хорошо поддерживаются в браузере, за исключением Internet Explorer и Safari (которые на момент написания Fetch были доступны в своем предварительный просмотр технологии).

Если вам необходимо поддерживать старые браузеры, тогда может быть предпочтительным решение XHR. Если, однако, вы работаете над более прогрессивным проектом и не так обеспокоены старыми браузерами, то Fetch может быть хорошим выбором.

Вам действительно нужно учиться — Fetch станет более популярным, так как Internet Explorer отказывается от использования (IE больше не разрабатывается, в пользу нового браузера Microsoft Edge), но вам может понадобиться XHR еще некоторое время.

Более сложный пример

Чтобы завершить статью, мы рассмотрим несколько более сложный пример, который показывает более интересные применения Fetch. Мы создали образец сайта под названием The Can Store — это вымышленный супермаркет, который продает только консервы. Вы можете найти этот пример в прямом эфире на GitHub и посмотреть исходный код.

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

Существует довольно много сложного кода, который включает фильтрацию продуктов по категориям и поисковым запросам, манипулирование строками, чтобы данные отображались правильно в пользовательском интерфейсе и т.д. Мы не будем обсуждать все это в статье, но вы можете найти обширные комментарии в коде (см. can-script.js).

Однако мы объясним код Fetch.

Первый блок, который использует Fetch, можно найти в начале JavaScript:

Это похоже на то, что мы видели раньше, за исключением того, что второе обещание находится в условном выражении. В этом случае мы проверяем, был ли возвращенный ответ успешным — свойство response.ok содержит логическое значение, которое true , если ответ был в порядке (например, 200 meaning «OK») или false , если он не увенчался успехом.

Если ответ был успешным, мы выполняем второе обещание — на этот раз мы используем json() , а не text() , так как мы хотим вернуть наш ответ как структурированные данные JSON, а не обычный текст.

Если ответ не увенчался успехом, мы выводим сообщение об ошибке в консоль, в котором сообщается о сбое сетевого запроса, который сообщает о статусе сети и описательном сообщении ответа (содержащемся в response.status и response.statusText , соответственно). Конечно, полный веб-сайт будет обрабатывать эту ошибку более грациозно, отображая сообщение на экране пользователя и, возможно, предлагая варианты для исправления ситуации.

Вы можете проверить сам случай отказа:

  1. Создание локальной копии файлов примеров (загрузка и распаковка the can-store ZIP file)
  2. Запустите код через веб-сервер (как описано выше, в Serving your example from a server)
  3. Измените путь к извлеченному файлу, например, «product.json» (т.е. убедитесь, что он написан неправильно)
  4. Теперь загрузите индексный файл в свой браузер (например, через localhost:8000 ) и посмотрите в консоли разработчика браузера. Вы увидите сообщение в строке «Запрос сети для продуктов.json не удалось с ответом 404: Файл не найден»

Второй блок Fetch можно найти внутри функции fetchBlob() :

Это работает во многом так же, как и предыдущий, за исключением того, что вместо использования json() мы используем blob() — в этом случае мы хотим вернуть наш ответ в виде файла изображения, а формат данных, который мы используем для этого — Blob — этот термин является аббревиатурой от« Binary Large Object »и может в основном использоваться для представляют собой большие файловые объекты, такие как изображения или видеофайлы.

После того как мы успешно получили наш blob, мы создаем URL-адрес объекта, используя createObjectURL() . Это возвращает временный внутренний URL-адрес, указывающий на объект, указанный в браузере. Они не очень читаемы, но вы можете видеть, как выглядит, открывая приложение Can Store, Ctrl-/щелкнуть правой кнопкой мыши по изображению и выбрать опцию «Просмотр изображения» (которая может немного отличаться в зависимости от того, какой браузер вы ). URL-адрес объекта будет отображаться внутри адресной строки и должен выглядеть примерно так:

Вызов: XHR версия the Can Store

Мы хотели бы, чтобы вы решили преобразовать версию приложения Fetch для использования XHR в качестве полезной части практики. Возьмите копию ZIP файла и попробуйте изменить JavaScript, если это необходимо.

Некоторые полезные советы:

  • Вы можете найти полезный справочный материал XMLHttpRequest .
  • Вам в основном нужно использовать тот же шаблон, что и раньше, в примере XHR-basic.html.
  • Однако вам нужно будет добавить обработку ошибок, которые мы показали вам в версии Fetch Can Store:
    • Ответ найден в request.response после того, как событие load запущено, а не в обещании then() .
    • О наилучшем эквиваленте Fetch’s response.ok в XHR следует проверить, является ли request.status равным 200 или если request.readyState равно 4.
    • Свойства для получения статуса и сообщения состояния одинаковы, но они находятся на объекте request (XHR), а не в объекте response .

Примечание: Если у вас есть проблемы с этим, не стесняйтесь сравнить свой код с готовой версией на GitHub (см. исходник здесь, а также см. это в действии).

Резюме

Это завершает нашу статью по извлечению данных с сервера. К этому моменту вы должны иметь представление о том, как начать работать как с XHR, так и с Fetch.

Смотрите также

Однако в этой статье обсуждается много разных тем, которые только поцарапали поверхность. Для получения более подробной информации по этим темам, попробуйте следующие статьи:

В этом модуле

Metadata

  • Последнее изменение: May 7, 2020 , by MDN contributors
  1. Новички начинают здесь!
  2. Начало работы с Вебом
    1. Начало работы с Вебом
    2. Установка базового программного обеспечения
    3. Каким должен быть ваш веб-сайт?
    4. Работа с файлами
    5. Основы HTML
    6. Основы CSS
    7. Основы JavaScript
    8. Публикация вашего веб-сайта
    9. Как работает Веб
  3. HTML — структура Веба
  4. Вступление в HTML
    1. Вступление в HTML
    2. Начало работы с HTML
    3. Что в «шапке»? Метаданные в HTML
    4. Тексты в HTML
    5. Создание гиперссылок
    6. Продвинутое форматирование текста
    7. Структура документа и веб-сайта
    8. Отладка HTML
    9. Задание: Выделение символа
    10. Задание: Структура страницы
  5. Мультимедиа и встраивание
    1. Мультимедиа и встраивание
    2. Изображения в HTML
    3. Видео и аудио контент
    4. От object до iframe — другие технологии встраивания
    5. Добавление векторный графики в Веб
    6. Отзывчивые изображения
    7. Задание: Страница о Mozilla
  6. HTML tables
    1. HTML tables overview
    2. HTML table basics
    3. HTML Table advanced features and accessibility
    4. Assessment: Structuring planet data
  7. HTML forms
    1. HTML forms overview
    2. Your first HTML form
    3. How to structure an HTML form
    4. The native form widgets
    5. Sending form data
    6. Form validation
    7. How to build custom form widgets
    8. Sending forms through JavaScript
    9. HTML forms in legacy browsers
    10. Styling HTML forms
    11. Advanced styling for HTML forms
    12. Property compatibility table for form widgets
  8. CSS — стилизирование Веба
  9. Вступление в CSS
    1. Вступление в CSS
    2. Как работает CSS
    3. Синтаксис CSS
    4. Введение в селекторы
    5. Простые селекторы
    6. Селекторы по атрибутам
    7. Псевдоклассы и псевдоэлементы
    8. Комбинаторы и множественные селекторы
    9. CSS значения и единицы
    10. Каскадность и наследование
    11. Блочная модель
    12. Отладка CSS
    13. Задание: Основы понимания CSS
  10. Стилизирование текста
    1. Стилизирование текста
    2. Основы стилизирования текста и шрифта
    3. Стилизирование списков
    4. Стилизирование ссылок
    5. Веб-шрифты
    6. Задание: Стилизирование школьного сайта
  11. Стилизирование блоков
    1. Стилизирование блоков
    2. Кратко о блочной модели
    3. Фоны
    4. Рамки
    5. Стилизирование таблиц
    6. Продвинутые эффекты
    7. Задание: Создание разукращенного листа
    8. Задание: Классно выглядищий блок
  12. CSS макет
    1. CSS макет
    2. Вступление
    3. Normal Flow
    4. Flexbox
    5. Сетки
    6. Float
    7. Позиционирование
    8. Multiple-column Layout
    9. Legacy Layout Methods
    10. Supporting Older Browsers
    11. Fundamental Layout Comprehension
  13. JavaScript — динамический клиентский скриптинг
  14. Первые шаги в JavaScript
    1. Первые шаги в JavaScript
    2. Что такое JavaScript?
    3. Первое погружение в JavaScript
    4. Что-то пошло не так? Устранение ошибок JavaScript
    5. Хранение нужной информации — Переменные
    6. Основы JavaScript — Числа и операторы
    7. Работа с текстом — Строки в JavaScript
    8. Полезные методы для строк
    9. Массивы
    10. Задание: Генератор глупых историй
  15. Блоки в JavaScript
    1. Блоки в JavaScript
    2. Делаем решения в вашем годе — Условия
    3. Повторение кода
    4. Функции — Переиспользуемые блоки кода
    5. Создаём свою функцию
    6. Возвращаемые значения функций
    7. Введение в события
    8. Задание: Галерея изображений
  16. Введение в объекты JavaScript
    1. Введение в объекты JavaScript
    2. Основы объектов
    3. Объектно-ориентированный JavaScript для новичков
    4. Прототипы объектов
    5. Наследование в JavaScript
    6. Работа с JSON данными
    7. Практика по созданию объектов
    8. Задание: Добавление возможностей в пример с прыгающими шарами
  17. Asynchronous JavaScript
    1. Asynchronous JavaScript overview
    2. General asynchronous programming concepts
    3. Introducing asynchronous JavaScript
    4. Cooperative asynchronous Java​Script: Timeouts and intervals
    5. Graceful asynchronous programming with Promises
    6. Making asynchronous programming easier with async and await
    7. Choosing the right approach
  18. Client-side web APIs
    1. Client-side web APIs
    2. Introduction to web APIs
    3. Manipulating documents
    4. Fetching data from the server
    5. Third party APIs
    6. Drawing graphics
    7. Video and audio APIs
    8. Client-side storage
  19. Accessibility — Make the web usable by everyone
  20. Accessibility guides
    1. Accessibility overview
    2. What is accessibility?
    3. HTML: A good basis for accessibility
    4. CSS and JavaScript accessibility best practices
    5. WAI-ARIA basics
    6. Accessible multimedia
    7. Mobile accessibility
  21. Accessibility assessment
    1. Assessment: Accessibility troubleshooting
  22. Инструменты и тестирование
  23. Кроссбраузерное тестирование
    1. Кроссбраузерное тестирование
    2. Вступление в кроссбраузерное тестирование
    3. Стратегии выполнения тестирования
    4. Решение частых проблем с HTML и CSS
    5. Решение частых проблем с JavaScript
    6. Решение частых проблем доступности
    7. Проверка поддержки возможностей
    8. Вступление в автоматическое тестирование
    9. Установка вашей автоматической среды тестирования

  24. Программирование серверной части сайта
  25. Первые шаги
    1. Первые шаги
    2. Вступление в серверное программирование
    3. Клиент-сервер
    4. Веб-фреймворки для серверной части
    5. Защищённость веб-сайтов
  26. Веб-фреймворк Django (Python)
    1. Веб-фреймворк Django (Python)
    2. Вступление
    3. Установка среды разработки
    4. Руководство: Сайт местной библиотеки
    5. Руководство часть 2: Создаём набросок сайта
    6. Руководство часть 3: Использование моделей
    7. Руководство часть 4: Django панель администратора
    8. Руководство часть 5: Создание нашей домашней страницы
    9. Руководство часть 6: Списки и представления
    10. Руководство часть 7: Сессии
    11. Руководство часть 8: Аутенфикация и разрешения пользователей
    12. Руководство часть 9: Работа с формами
    13. Руководство часть 10: Тестирование веб-приложения на Django
    14. Руководство часть 11: Разворачивание Django на продакшн сервере
    15. Защищённость веб-приложения
    16. Задание: создание мини блога
  27. Express Web Framework (node.js/JavaScript)
    1. Express Web Framework (Node.js/JavaScript) overview
    2. Express/Node introduction
    3. Setting up a Node (Express) development environment
    4. Express tutorial: The Local Library website
    5. Express Tutorial Part 2: Creating a skeleton website
    6. Express Tutorial Part 3: Using a database (with Mongoose)
    7. Express Tutorial Part 4: Routes and controllers
    8. Express Tutorial Part 5: Displaying library data
    9. Express Tutorial Part 6: Working with forms
    10. Express Tutorial Part 7: Deploying to production
  28. Дальнейшее чтение
  29. Общие вопросы
    1. Вопросы по HTML
    2. Вопросы по CSS
    3. JavaScript questions
    4. Как работает Веб
    5. Инструменты и установка
    6. Дизайн и доступность
  30. Как помочь?

Mozilla

© 2005- 2020 Mozilla and individual contributors.

Content is available under these licenses.

\u041E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043E \u043F\u0440\u0438\u043C\u0435\u0440\u0430 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430

\u041D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044B (\u0432\u043A\u043B\u044E\u0447\u0430\u044F Chrome) \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441\u044B XHR, \u0435\u0441\u043B\u0438 \u0432\u044B \u043F\u0440\u043E\u0441\u0442\u043E \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0435 \u043F\u0440\u0438\u043C\u0435\u0440 \u0438\u0437 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430. \u042D\u0442\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043E \u0441 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u043C\u0438 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438 (\u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 \u043E \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438 \u0432 \u0418\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0435, \u043E\u0437\u043D\u0430\u043A\u043E\u043C\u044C\u0442\u0435\u0441\u044C \u0441 Website security).

\u0427\u0442\u043E\u0431\u044B \u043E\u0431\u043E\u0439\u0442\u0438 \u044D\u0442\u043E, \u043D\u0430\u043C \u043D\u0443\u0436\u043D\u043E \u043F\u0440\u043E\u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0440, \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0432 \u0435\u0433\u043E \u0447\u0435\u0440\u0435\u0437 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440. \u0427\u0442\u043E\u0431\u044B \u0443\u0437\u043D\u0430\u0442\u044C, \u043A\u0430\u043A \u044D\u0442\u043E \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u041A\u0430\u043A \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0442\u0435\u0441\u0442\u043E\u0432\u044B\u0439 \u0441\u0435\u0440\u0432\u0435\u0440?

Fetch

API-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Fetch — \u044D\u0442\u043E, \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C, \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0437\u0430\u043C\u0435\u043D\u0430 XHR — \u043D\u0435\u0434\u0430\u0432\u043D\u043E \u043E\u043D \u0431\u044B\u043B \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445 \u0434\u043B\u044F \u0443\u043F\u0440\u043E\u0449\u0435\u043D\u0438\u044F \u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0445 HTTP-\u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u0432 JavaScript, \u043A\u0430\u043A \u0434\u043B\u044F \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u0432, \u0442\u0430\u043A \u0438 \u0434\u043B\u044F \u0434\u0440\u0443\u0433\u0438\u0445 API, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u0442\u0440\u043E\u044F\u0442\u0441\u044F \u043F\u043E\u0432\u0435\u0440\u0445 Fetch.

\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0435\u043C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u043F\u0440\u0438\u043C\u0435\u0440, \u0447\u0442\u043E\u0431\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C Fetch!

\u0421\u0434\u0435\u043B\u0430\u0439\u0442\u0435 \u043A\u043E\u043F\u0438\u044E \u0441\u0432\u043E\u0435\u0433\u043E \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0433\u043E \u0433\u043E\u0442\u043E\u0432\u043E\u0433\u043E \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043F\u0440\u0438\u043C\u0435\u0440\u043E\u0432. (\u0415\u0441\u043B\u0438 \u0432\u044B \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u043B\u0438 \u043D\u0430\u0434 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u043C \u0443\u043F\u0440\u0430\u0436\u043D\u0435\u043D\u0438\u0435\u043C, \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043A\u0430\u0442\u0430\u043B\u043E\u0433 \u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u043D\u0435\u0433\u043E \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u043A\u043E\u043F\u0438\u0438 xhr-basic.html \u0438 \u0447\u0435\u0442\u044B\u0440\u0435\u0445 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u2014 verse1.txt, verse2.txt, verse3.txt \u0438 verse4.txt.)

\u0412\u043D\u0443\u0442\u0440\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 updateDisplay() \u043D\u0430\u0439\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 XHR:

\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u0435 \u0432\u0435\u0441\u044C XHR-\u043A\u043E\u0434 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u043C:

\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043F\u0440\u0438\u043C\u0435\u0440 \u0432 \u0441\u0432\u043E\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 (\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 \u0435\u0433\u043E \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440), \u0438 \u043E\u043D \u0434\u043E\u043B\u0436\u0435\u043D \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0442\u0430\u043A \u0436\u0435, \u043A\u0430\u043A \u0438 \u0432\u0435\u0440\u0441\u0438\u044F XHR, \u043F\u0440\u0438 \u0443\u0441\u043B\u043E\u0432\u0438\u0438, \u0447\u0442\u043E \u0432\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0435 \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440.

\u0418\u0442\u0430\u043A, \u0447\u0442\u043E \u043F\u0440\u043E\u0438\u0441\u0445\u043E\u0434\u0438\u0442 \u0432 \u043A\u043E\u0434\u0435 Fetch?

\u041F\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043E, \u043C\u044B \u0432\u044B\u0437\u044B\u0432\u0430\u0435\u043C \u043C\u0435\u0442\u043E\u0434 fetch() , \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044F \u0435\u043C\u0443 URL-\u0430\u0434\u0440\u0435\u0441 \u0440\u0435\u0441\u0443\u0440\u0441\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C. \u042D\u0442\u043E \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0439 \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442 request.open() \u0432 XHR, \u043F\u043B\u044E\u0441 \u0432\u0430\u043C \u043D\u0435 \u043D\u0443\u0436\u0435\u043D \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442 .send() .

\u041F\u043E\u0441\u043B\u0435 \u044D\u0442\u043E\u0433\u043E \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u043C\u0435\u0442\u043E\u0434 .then() , \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0439 \u0432 \u043A\u043E\u043D\u0435\u0446 fetch() — \u044D\u0442\u043E\u0442 \u043C\u0435\u0442\u043E\u0434 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0447\u0430\u0441\u0442\u044C\u044E Promises — \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u044F JavaScript \u0434\u043B\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439. fetch() \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043E\u0442\u0432\u0435\u0442, \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u043E\u0431\u0440\u0430\u0442\u043D\u043E \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, — \u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C .then() \u0434\u043B\u044F \u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u043A\u043E\u0434\u0430 \u043F\u043E\u0441\u043B\u0435 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043E, \u0447\u0442\u043E \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u0435\u0439, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u043C\u044B \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u043B\u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u043D\u0435\u0435. \u042D\u0442\u043E \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0430 \u0441\u043E\u0431\u044B\u0442\u0438\u044F onload \u0432 XHR-\u0432\u0435\u0440\u0441\u0438\u0438.

\u042D\u0442\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043E\u0442\u0432\u0435\u0442 \u043E\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430, \u043A\u043E\u0433\u0434\u0430 \u043E\u0431\u0435\u0449\u0430\u0435\u0442 fetch() . \u0412\u043D\u0443\u0442\u0440\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u043C\u044B \u0431\u0435\u0440\u0435\u043C \u043E\u0442\u0432\u0435\u0442 \u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u043C \u0435\u0433\u043E \u043C\u0435\u0442\u043E\u0434 text() , \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0442\u0432\u0435\u0442 \u043A\u0430\u043A \u043D\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442. \u042D\u0442\u043E \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442 request.responseType = ‘text’ \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 XHR.

\u0412\u044B \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u0447\u0442\u043E text() \u0442\u0430\u043A\u0436\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043C\u044B \u043F\u0440\u0438\u0432\u044F\u0437\u044B\u0432\u0430\u0435\u043C \u043A \u043D\u0435\u043C\u0443 \u0434\u0440\u0443\u0433\u043E\u0439 .then() , \u0432\u043D\u0443\u0442\u0440\u0438 \u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u043C\u044B \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C \u0444\u0443\u043D\u043A\u0446\u0438\u044E \u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043D\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043E\u0431\u0435\u0449\u0430\u0435\u0442 \u0440\u0435\u0448\u0435\u043D\u0438\u0435 text() .

\u0412\u043D\u0443\u0442\u0440\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0435\u0433\u043E \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u044F \u043C\u044B \u0434\u0435\u043B\u0430\u0435\u043C \u0442\u043E \u0436\u0435 \u0441\u0430\u043C\u043E\u0435, \u0447\u0442\u043E \u0438 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 XHR, — \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \\n\\n

\u0412 \u043F\u0435\u0440\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0435 \u0433\u043E\u0432\u043E\u0440\u0438\u0442\u0441\u044F: \u00AB\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0440\u0435\u0441\u0443\u0440\u0441, \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0439 \u043F\u043E \u0430\u0434\u0440\u0435\u0441\u0443 url\u00BB (fetch(url) ) \u0438 \u00AB\u0437\u0430\u0442\u0435\u043C \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u0443\u044E \u0444\u0443\u043D\u043A\u0446\u0438\u044E, \u043A\u043E\u0433\u0434\u0430 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043E\u00BB ( .then(function() < . >) ). \u00ABResolve\u00BB \u043E\u0437\u043D\u0430\u0447\u0430\u0435\u0442 \u00AB\u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u043A\u0430\u043A\u043E\u0439-\u0442\u043E \u043C\u043E\u043C\u0435\u043D\u0442 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C\u00BB. \u0423\u043A\u0430\u0437\u0430\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0437\u0430\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0441 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0433\u043E URL (\u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C HTTP-\u0437\u0430\u043F\u0440\u043E\u0441\u0430) \u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430 \u043E\u0442\u0432\u0435\u0442\u0430 \u0434\u043B\u044F \u043D\u0430\u0441, \u0447\u0442\u043E\u0431\u044B \u0447\u0442\u043E-\u0442\u043E \u0441\u0434\u0435\u043B\u0430\u0442\u044C.

\u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438, \u0444\u0443\u043D\u043A\u0446\u0438\u044F, \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0430\u044F \u0432 then() , \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u043E\u0431\u043E\u0439 \u043A\u0443\u0441\u043E\u043A \u043A\u043E\u0434\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043D\u0435 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0441\u044F \u043D\u0435\u043C\u0435\u0434\u043B\u0435\u043D\u043D\u043E — \u0432\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u043E\u043D \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0432 \u043A\u0430\u043A\u043E\u0439-\u0442\u043E \u043C\u043E\u043C\u0435\u043D\u0442 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C, \u043A\u043E\u0433\u0434\u0430 \u043E\u0442\u0432\u0435\u0442 \u0431\u0443\u0434\u0435\u0442 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D. \u041E\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0442\u043E \u0432\u044B \u0442\u0430\u043A\u0436\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0435 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 \u0432 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0438 \u0446\u0435\u043F\u043E\u0447\u043A\u0443 .then() \u0432\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E. \u041D\u0438\u0436\u0435 \u043A\u043E\u0434 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043B\u0430\u0442\u044C \u0442\u043E \u0436\u0435 \u0441\u0430\u043C\u043E\u0435:

\u041F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u043C\u0435\u0442\u043E\u0434 fetch() \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 HTTP-\u043E\u0442\u0432\u0435\u0442, \u043B\u044E\u0431\u0430\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0432\u044B \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442\u0435 \u0432\u043D\u0443\u0442\u0440\u0438 .then() , \u043F\u0440\u0438\u043A\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u043A \u043A\u043E\u043D\u0446\u0443, \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044C\u0441\u044F \u043A\u0430\u043A \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432\u0430\u043C \u043D\u0440\u0430\u0432\u0438\u0442\u0441\u044F — \u043F\u0440\u0438\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0439 \u043D\u0438\u0436\u0435 \u043F\u0440\u0438\u043C\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C:

\u041D\u043E \u0438\u043C\u0435\u0435\u0442 \u0441\u043C\u044B\u0441\u043B \u043D\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0442\u0435\u043C, \u0447\u0442\u043E \u043E\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0435\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435!

\u0422\u0435\u043F\u0435\u0440\u044C \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043E\u0441\u0440\u0435\u0434\u043E\u0442\u043E\u0447\u0438\u043C\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u0438:

\u041E\u0431\u044A\u0435\u043A\u0442 \u043E\u0442\u0432\u0435\u0442\u0430 \u0438\u043C\u0435\u0435\u0442 \u043C\u0435\u0442\u043E\u0434 text() , \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0431\u0435\u0440\u0435\u0442 \u043D\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435\u0441\u044F \u0432 \u0442\u0435\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430, \u0438 \u043F\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043E \u0432 \u043E\u0431\u044B\u0447\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0444\u043E\u0440\u043C\u0430\u0442\u043E\u043C, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u0432 \u043D\u0435\u043C \u0410 \u0442\u0430\u043A\u0436\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 (\u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u0443\u044E \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0437\u0434\u0435\u0441\u044C \u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C \u0434\u0440\u0443\u0433\u043E\u0439 .then() , \u0432\u043D\u0443\u0442\u0440\u0438 \u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u043C\u044B \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C \u0434\u0440\u0443\u0433\u0443\u044E \u0444\u0443\u043D\u043A\u0446\u0438\u044E, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0434\u0438\u043A\u0442\u0443\u0435\u0442 \u0447\u0442\u043E \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0441 \u044D\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439. \u041C\u044B \u043F\u0440\u043E\u0441\u0442\u043E \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E textContent \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \\n\\n

\u041C\u043D\u043E\u0433\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0438 \u043B\u044E\u0431\u044F\u0442 \u044D\u0442\u043E\u0442 \u0441\u0442\u0438\u043B\u044C \u0431\u043E\u043B\u044C\u0448\u0435, \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u043E\u043D \u0431\u043E\u043B\u0435\u0435 \u043F\u043B\u043E\u0441\u043A\u0438\u0439 \u0438, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u043B\u0435\u0433\u0447\u0435 \u0447\u0438\u0442\u0430\u0442\u044C \u0434\u043B\u044F \u0431\u043E\u043B\u0435\u0435 \u0434\u043B\u0438\u043D\u043D\u044B\u0445 \u0446\u0435\u043F\u043E\u0447\u0435\u043A \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0439 — \u043A\u0430\u0436\u0434\u043E\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0433\u043E, \u0430 \u043D\u0435 \u0432\u043D\u0443\u0442\u0440\u0438 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0433\u043E (\u0447\u0442\u043E \u043C\u043E\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044C \u0433\u0440\u043E\u043C\u043E\u0437\u0434\u043A\u0438\u043C). \u0415\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0435 \u043E\u0442\u043B\u0438\u0447\u0438\u0435 \u0441\u043E\u0441\u0442\u043E\u0438\u0442 \u0432 \u0442\u043E\u043C, \u0447\u0442\u043E \u043C\u044B \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 return \u043F\u0435\u0440\u0435\u0434 response.text() , \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0435\u0433\u043E \u043F\u0435\u0440\u0435\u0434\u0430\u0442\u044C \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E \u0441\u0441\u044B\u043B\u043A\u0443 \u0432 \u0446\u0435\u043F\u043E\u0447\u043A\u0435.

\u041A\u0430\u043A\u043E\u0439 \u043C\u0435\u0445\u0430\u043D\u0438\u0437\u043C \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C?

\u042D\u0442\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043E\u0442 \u0442\u043E\u0433\u043E, \u043D\u0430\u0434 \u043A\u0430\u043A\u0438\u043C \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u043C \u0432\u044B \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442\u0435. XHR \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0434\u0430\u0432\u043D\u043E \u0438 \u0438\u043C\u0435\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u043D\u0443\u044E \u043A\u0440\u043E\u0441\u0441-\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043D\u0443\u044E \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0443. Fetch and Promises, \u0441 \u0434\u0440\u0443\u0433\u043E\u0439 \u0441\u0442\u043E\u0440\u043E\u043D\u044B, \u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u0431\u043E\u043B\u0435\u0435 \u043F\u043E\u0437\u0434\u043D\u0438\u043C \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435\u043C \u043A \u0432\u0435\u0431-\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435, \u0445\u043E\u0442\u044F \u043E\u043D\u0438 \u0445\u043E\u0440\u043E\u0448\u043E \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u0437\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C Internet Explorer \u0438 Safari (\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0430 \u043C\u043E\u043C\u0435\u043D\u0442 \u043D\u0430\u043F\u0438\u0441\u0430\u043D\u0438\u044F Fetch \u0431\u044B\u043B\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0432 \u0441\u0432\u043E\u0435\u043C \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0438).

\u0415\u0441\u043B\u0438 \u0432\u0430\u043C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044C \u0441\u0442\u0430\u0440\u044B\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044B, \u0442\u043E\u0433\u0434\u0430 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u043C \u0440\u0435\u0448\u0435\u043D\u0438\u0435 XHR. \u0415\u0441\u043B\u0438, \u043E\u0434\u043D\u0430\u043A\u043E, \u0432\u044B \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442\u0435 \u043D\u0430\u0434 \u0431\u043E\u043B\u0435\u0435 \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043D\u044B\u043C \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u043C \u0438 \u043D\u0435 \u0442\u0430\u043A \u043E\u0431\u0435\u0441\u043F\u043E\u043A\u043E\u0435\u043D\u044B \u0441\u0442\u0430\u0440\u044B\u043C\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043C\u0438, \u0442\u043E Fetch \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0445\u043E\u0440\u043E\u0448\u0438\u043C \u0432\u044B\u0431\u043E\u0440\u043E\u043C.

\u0412\u0430\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043D\u0443\u0436\u043D\u043E \u0443\u0447\u0438\u0442\u044C\u0441\u044F — Fetch \u0441\u0442\u0430\u043D\u0435\u0442 \u0431\u043E\u043B\u0435\u0435 \u043F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u044B\u043C, \u0442\u0430\u043A \u043A\u0430\u043A Internet Explorer \u043E\u0442\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043E\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F (IE \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u0432 \u043F\u043E\u043B\u044C\u0437\u0443 \u043D\u043E\u0432\u043E\u0433\u043E \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 Microsoft Edge), \u043D\u043E \u0432\u0430\u043C \u043C\u043E\u0436\u0435\u0442 \u043F\u043E\u043D\u0430\u0434\u043E\u0431\u0438\u0442\u044C\u0441\u044F XHR \u0435\u0449\u0435 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0432\u0440\u0435\u043C\u044F.

\u0411\u043E\u043B\u0435\u0435 \u0441\u043B\u043E\u0436\u043D\u044B\u0439 \u043F\u0440\u0438\u043C\u0435\u0440

\u0427\u0442\u043E\u0431\u044B \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C \u0441\u0442\u0430\u0442\u044C\u044E, \u043C\u044B \u0440\u0430\u0441\u0441\u043C\u043E\u0442\u0440\u0438\u043C \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0431\u043E\u043B\u0435\u0435 \u0441\u043B\u043E\u0436\u043D\u044B\u0439 \u043F\u0440\u0438\u043C\u0435\u0440, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0431\u043E\u043B\u0435\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u043D\u044B\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F Fetch. \u041C\u044B \u0441\u043E\u0437\u0434\u0430\u043B\u0438 \u043E\u0431\u0440\u0430\u0437\u0435\u0446 \u0441\u0430\u0439\u0442\u0430 \u043F\u043E\u0434 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u043C The Can Store — \u044D\u0442\u043E \u0432\u044B\u043C\u044B\u0448\u043B\u0435\u043D\u043D\u044B\u0439 \u0441\u0443\u043F\u0435\u0440\u043C\u0430\u0440\u043A\u0435\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043F\u0440\u043E\u0434\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043A\u043E\u043D\u0441\u0435\u0440\u0432\u044B. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u0439\u0442\u0438 \u044D\u0442\u043E\u0442 \u043F\u0440\u0438\u043C\u0435\u0440 \u0432 \u043F\u0440\u044F\u043C\u043E\u043C \u044D\u0444\u0438\u0440\u0435 \u043D\u0430 GitHub \u0438 \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434.

\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0430 \u0441\u0430\u0439\u0442\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u043F\u0440\u043E\u0434\u0443\u043A\u0442\u044B, \u043D\u043E \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0444\u043E\u0440\u043C\u044B \u0432 \u0441\u0442\u043E\u043B\u0431\u0446\u0435 \u0441\u043B\u0435\u0432\u0430, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u043F\u043E \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043C, \u043F\u043E\u0438\u0441\u043A\u043E\u0432\u043E\u043C\u0443 \u0437\u0430\u043F\u0440\u043E\u0441\u0443 \u0438\u043B\u0438 \u0438 \u0442\u043E\u043C\u0443 \u0438 \u0434\u0440\u0443\u0433\u043E\u043C\u0443.

\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043E\u0432\u043E\u043B\u044C\u043D\u043E \u043C\u043D\u043E\u0433\u043E \u0441\u043B\u043E\u0436\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044E \u043F\u0440\u043E\u0434\u0443\u043A\u0442\u043E\u0432 \u043F\u043E \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043C \u0438 \u043F\u043E\u0438\u0441\u043A\u043E\u0432\u044B\u043C \u0437\u0430\u043F\u0440\u043E\u0441\u0430\u043C, \u043C\u0430\u043D\u0438\u043F\u0443\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438, \u0447\u0442\u043E\u0431\u044B \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u043B\u0438\u0441\u044C \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E \u0432 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u043C \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0438 \u0442.\u0434. \u041C\u044B \u043D\u0435 \u0431\u0443\u0434\u0435\u043C \u043E\u0431\u0441\u0443\u0436\u0434\u0430\u0442\u044C \u0432\u0441\u0435 \u044D\u0442\u043E \u0432 \u0441\u0442\u0430\u0442\u044C\u0435, \u043D\u043E \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u0439\u0442\u0438 \u043E\u0431\u0448\u0438\u0440\u043D\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0432 \u043A\u043E\u0434\u0435 (\u0441\u043C. can-script.js).

\u041E\u0434\u043D\u0430\u043A\u043E \u043C\u044B \u043E\u0431\u044A\u044F\u0441\u043D\u0438\u043C \u043A\u043E\u0434 Fetch.

\u041F\u0435\u0440\u0432\u044B\u0439 \u0431\u043B\u043E\u043A, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 Fetch, \u043C\u043E\u0436\u043D\u043E \u043D\u0430\u0439\u0442\u0438 \u0432 \u043D\u0430\u0447\u0430\u043B\u0435 JavaScript:

\u042D\u0442\u043E \u043F\u043E\u0445\u043E\u0436\u0435 \u043D\u0430 \u0442\u043E, \u0447\u0442\u043E \u043C\u044B \u0432\u0438\u0434\u0435\u043B\u0438 \u0440\u0430\u043D\u044C\u0448\u0435, \u0437\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C \u0442\u043E\u0433\u043E, \u0447\u0442\u043E \u0432\u0442\u043E\u0440\u043E\u0435 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0443\u0441\u043B\u043E\u0432\u043D\u043E\u043C \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0438. \u0412 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u043C\u044B \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u043C, \u0431\u044B\u043B \u043B\u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 \u0443\u0441\u043F\u0435\u0448\u043D\u044B\u043C — \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E response.ok \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 true , \u0435\u0441\u043B\u0438 \u043E\u0442\u0432\u0435\u0442 \u0431\u044B\u043B \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 200 meaning \\\»OK\\\») \u0438\u043B\u0438 false , \u0435\u0441\u043B\u0438 \u043E\u043D \u043D\u0435 \u0443\u0432\u0435\u043D\u0447\u0430\u043B\u0441\u044F \u0443\u0441\u043F\u0435\u0445\u043E\u043C.

\u0415\u0441\u043B\u0438 \u043E\u0442\u0432\u0435\u0442 \u0431\u044B\u043B \u0443\u0441\u043F\u0435\u0448\u043D\u044B\u043C, \u043C\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u043C \u0432\u0442\u043E\u0440\u043E\u0435 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 — \u043D\u0430 \u044D\u0442\u043E\u0442 \u0440\u0430\u0437 \u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C json() , \u0430 \u043D\u0435 text() , \u0442\u0430\u043A \u043A\u0430\u043A \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043D\u0430\u0448 \u043E\u0442\u0432\u0435\u0442 \u043A\u0430\u043A \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 JSON, \u0430 \u043D\u0435 \u043E\u0431\u044B\u0447\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442.

\u0415\u0441\u043B\u0438 \u043E\u0442\u0432\u0435\u0442 \u043D\u0435 \u0443\u0432\u0435\u043D\u0447\u0430\u043B\u0441\u044F \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043C\u044B \u0432\u044B\u0432\u043E\u0434\u0438\u043C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0435 \u0432 \u043A\u043E\u043D\u0441\u043E\u043B\u044C, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u0441\u043E\u043E\u0431\u0449\u0430\u0435\u0442\u0441\u044F \u043E \u0441\u0431\u043E\u0435 \u0441\u0435\u0442\u0435\u0432\u043E\u0433\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0441\u043E\u043E\u0431\u0449\u0430\u0435\u0442 \u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u0441\u0435\u0442\u0438 \u0438 \u043E\u043F\u0438\u0441\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u043C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0438 \u043E\u0442\u0432\u0435\u0442\u0430 (\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u043C\u0441\u044F \u0432 response.status \u0438 response.statusText , \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E). \u041A\u043E\u043D\u0435\u0447\u043D\u043E, \u043F\u043E\u043B\u043D\u044B\u0439 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 \u0431\u0443\u0434\u0435\u0442 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u044D\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0443 \u0431\u043E\u043B\u0435\u0435 \u0433\u0440\u0430\u0446\u0438\u043E\u0437\u043D\u043E, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043D\u0430 \u044D\u043A\u0440\u0430\u043D\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u043F\u0440\u0435\u0434\u043B\u0430\u0433\u0430\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0434\u043B\u044F \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438.

\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u0441\u0430\u043C \u0441\u043B\u0443\u0447\u0430\u0439 \u043E\u0442\u043A\u0430\u0437\u0430:

\\n\\n

    \\n
  1. \u0421\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0439 \u043A\u043E\u043F\u0438\u0438 \u0444\u0430\u0439\u043B\u043E\u0432 \u043F\u0440\u0438\u043C\u0435\u0440\u043E\u0432 (\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0438 \u0440\u0430\u0441\u043F\u0430\u043A\u043E\u0432\u043A\u0430 the can-store ZIP file) \\n
  2. \u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 \u043A\u043E\u0434 \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 (\u043A\u0430\u043A \u043E\u043F\u0438\u0441\u0430\u043D\u043E \u0432\u044B\u0448\u0435, \u0432 Serving your example from a server) \\n
  3. \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u0435 \u043F\u0443\u0442\u044C \u043A \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u043D\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u00ABproduct.json\u00BB (\u0442.\u0435. \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u043E\u043D \u043D\u0430\u043F\u0438\u0441\u0430\u043D \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E) \\n
  4. \u0422\u0435\u043F\u0435\u0440\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0438\u043D\u0434\u0435\u043A\u0441\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u0432 \u0441\u0432\u043E\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0447\u0435\u0440\u0435\u0437 localhost:8000 ) \u0438 \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0432 \u043A\u043E\u043D\u0441\u043E\u043B\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430. \u0412\u044B \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 \u00AB\u0417\u0430\u043F\u0440\u043E\u0441 \u0441\u0435\u0442\u0438 \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u0443\u043A\u0442\u043E\u0432.json \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441 \u043E\u0442\u0432\u0435\u0442\u043E\u043C 404: \u0424\u0430\u0439\u043B \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u00BB \\n

\\n\\n

\u0412\u0442\u043E\u0440\u043E\u0439 \u0431\u043B\u043E\u043A Fetch \u043C\u043E\u0436\u043D\u043E \u043D\u0430\u0439\u0442\u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 fetchBlob() :

\u042D\u0442\u043E \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0432\u043E \u043C\u043D\u043E\u0433\u043E\u043C \u0442\u0430\u043A \u0436\u0435, \u043A\u0430\u043A \u0438 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439, \u0437\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C \u0442\u043E\u0433\u043E, \u0447\u0442\u043E \u0432\u043C\u0435\u0441\u0442\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F json() \u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C blob() — \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043D\u0430\u0448 \u043E\u0442\u0432\u0435\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0444\u0430\u0439\u043B\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F, \u0430 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u043D\u043D\u044B\u0445, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E — Blob — \u044D\u0442\u043E\u0442 \u0442\u0435\u0440\u043C\u0438\u043D \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0430\u0431\u0431\u0440\u0435\u0432\u0438\u0430\u0442\u0443\u0440\u043E\u0439 \u043E\u0442\u00AB Binary Large Object \u00BB\u0438 \u043C\u043E\u0436\u0435\u0442 \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442 \u0441\u043E\u0431\u043E\u0439 \u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u044B\u0435 \u043E\u0431\u044A\u0435\u043A\u0442\u044B, \u0442\u0430\u043A\u0438\u0435 \u043A\u0430\u043A \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0438\u043B\u0438 \u0432\u0438\u0434\u0435\u043E\u0444\u0430\u0439\u043B\u044B.

\u041F\u043E\u0441\u043B\u0435 \u0442\u043E\u0433\u043E \u043A\u0430\u043A \u043C\u044B \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u043E\u043B\u0443\u0447\u0438\u043B\u0438 \u043D\u0430\u0448 blob, \u043C\u044B \u0441\u043E\u0437\u0434\u0430\u0435\u043C URL-\u0430\u0434\u0440\u0435\u0441 \u043E\u0431\u044A\u0435\u043A\u0442\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F createObjectURL() . \u042D\u0442\u043E \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0439 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0439 URL-\u0430\u0434\u0440\u0435\u0441, \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0438\u0439 \u043D\u0430 \u043E\u0431\u044A\u0435\u043A\u0442, \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0439 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435. \u041E\u043D\u0438 \u043D\u0435 \u043E\u0447\u0435\u043D\u044C \u0447\u0438\u0442\u0430\u0435\u043C\u044B, \u043D\u043E \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044C, \u043A\u0430\u043A \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442, \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u044F \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 Can Store, Ctrl-/\u0449\u0435\u043B\u043A\u043D\u0443\u0442\u044C \u043F\u0440\u0430\u0432\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u043E\u0439 \u043C\u044B\u0448\u0438 \u043F\u043E \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044E \u0438 \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u043E\u043F\u0446\u0438\u044E \u00AB\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u00BB (\u043A\u043E\u0442\u043E\u0440\u0430\u044F \u043C\u043E\u0436\u0435\u0442 \u043D\u0435\u043C\u043D\u043E\u0433\u043E \u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u043E\u0442 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A\u043E\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0432\u044B ). URL-\u0430\u0434\u0440\u0435\u0441 \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 \u0430\u0434\u0440\u0435\u0441\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0438 \u0434\u043E\u043B\u0436\u0435\u043D \u0432\u044B\u0433\u043B\u044F\u0434\u0435\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0440\u043D\u043E \u0442\u0430\u043A:

\u0412\u044B\u0437\u043E\u0432: XHR \u0432\u0435\u0440\u0441\u0438\u044F the Can Store

\u041C\u044B \u0445\u043E\u0442\u0435\u043B\u0438 \u0431\u044B, \u0447\u0442\u043E\u0431\u044B \u0432\u044B \u0440\u0435\u0448\u0438\u043B\u0438 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0432\u0435\u0440\u0441\u0438\u044E \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F Fetch \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F XHR \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u043E\u043B\u0435\u0437\u043D\u043E\u0439 \u0447\u0430\u0441\u0442\u0438 \u043F\u0440\u0430\u043A\u0442\u0438\u043A\u0438. \u0412\u043E\u0437\u044C\u043C\u0438\u0442\u0435 \u043A\u043E\u043F\u0438\u044E ZIP \u0444\u0430\u0439\u043B\u0430 \u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C JavaScript, \u0435\u0441\u043B\u0438 \u044D\u0442\u043E \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E.

\u041D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043F\u043E\u043B\u0435\u0437\u043D\u044B\u0435 \u0441\u043E\u0432\u0435\u0442\u044B:

\\n\\n

    \\n
  • \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u043B\u0435\u0437\u043D\u044B\u0439 \u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u044B\u0439 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B XMLHttpRequest . \\n
  • \u0412\u0430\u043C \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C \u043D\u0443\u0436\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0442\u043E\u0442 \u0436\u0435 \u0448\u0430\u0431\u043B\u043E\u043D, \u0447\u0442\u043E \u0438 \u0440\u0430\u043D\u044C\u0448\u0435, \u0432 \u043F\u0440\u0438\u043C\u0435\u0440\u0435 XHR-basic.html. \\n
  • \u041E\u0434\u043D\u0430\u043A\u043E \u0432\u0430\u043C \u043D\u0443\u0436\u043D\u043E \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043E\u0448\u0438\u0431\u043E\u043A, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043C\u044B \u043F\u043E\u043A\u0430\u0437\u0430\u043B\u0438 \u0432\u0430\u043C \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 Fetch Can Store:\\n
      \\n
    • \u041E\u0442\u0432\u0435\u0442 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 request.response \u043F\u043E\u0441\u043B\u0435 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A \u0441\u043E\u0431\u044B\u0442\u0438\u0435 load \u0437\u0430\u043F\u0443\u0449\u0435\u043D\u043E, \u0430 \u043D\u0435 \u0432 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0438 then() . \\n
    • \u041E \u043D\u0430\u0438\u043B\u0443\u0447\u0448\u0435\u043C \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442\u0435 Fetch’s response.ok \u0432 XHR \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C, \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 request.status \u0440\u0430\u0432\u043D\u044B\u043C 200 \u0438\u043B\u0438 \u0435\u0441\u043B\u0438 request.readyState \u0440\u0430\u0432\u043D\u043E 4. \\n
    • \u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F \u043E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u044B, \u043D\u043E \u043E\u043D\u0438 \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u043D\u0430 \u043E\u0431\u044A\u0435\u043A\u0442\u0435 request (XHR), \u0430 \u043D\u0435 \u0432 \u043E\u0431\u044A\u0435\u043A\u0442\u0435 response . \\n

    \\n \\n

\\n\\n

\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0415\u0441\u043B\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044C \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B \u0441 \u044D\u0442\u0438\u043C, \u043D\u0435 \u0441\u0442\u0435\u0441\u043D\u044F\u0439\u0442\u0435\u0441\u044C \u0441\u0440\u0430\u0432\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0439 \u043A\u043E\u0434 \u0441 \u0433\u043E\u0442\u043E\u0432\u043E\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043D\u0430 GitHub (\u0441\u043C. \u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A \u0437\u0434\u0435\u0441\u044C, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0441\u043C. \u044D\u0442\u043E \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438).

\u0420\u0435\u0437\u044E\u043C\u0435

\u042D\u0442\u043E \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u043D\u0430\u0448\u0443 \u0441\u0442\u0430\u0442\u044C\u044E \u043F\u043E \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u044E \u0434\u0430\u043D\u043D\u044B\u0445 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041A \u044D\u0442\u043E\u043C\u0443 \u043C\u043E\u043C\u0435\u043D\u0442\u0443 \u0432\u044B \u0434\u043E\u043B\u0436\u043D\u044B \u0438\u043C\u0435\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043E \u0442\u043E\u043C, \u043A\u0430\u043A \u043D\u0430\u0447\u0430\u0442\u044C \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u043A\u0430\u043A \u0441 XHR, \u0442\u0430\u043A \u0438 \u0441 Fetch.

\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0442\u0430\u043A\u0436\u0435

\u041E\u0434\u043D\u0430\u043A\u043E \u0432 \u044D\u0442\u043E\u0439 \u0441\u0442\u0430\u0442\u044C\u0435 \u043E\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044F \u043C\u043D\u043E\u0433\u043E \u0440\u0430\u0437\u043D\u044B\u0445 \u0442\u0435\u043C, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0446\u0430\u0440\u0430\u043F\u0430\u043B\u0438 \u043F\u043E\u0432\u0435\u0440\u0445\u043D\u043E\u0441\u0442\u044C. \u0414\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0431\u043E\u043B\u0435\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 \u043F\u043E \u044D\u0442\u0438\u043C \u0442\u0435\u043C\u0430\u043C, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044C\u0438:

\u0412 \u044D\u0442\u043E\u043C \u043C\u043E\u0434\u0443\u043B\u0435

\u0414\u0440\u0443\u0433\u043E\u0439 \u043E\u0447\u0435\u043D\u044C \u0440\u0430\u0441\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0432 \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430\u0445 \u0438 \u200B\u200B\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0445 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0434\u0430\u043D\u043D\u044B\u0445 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043B\u044F \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u0440\u0430\u0437\u0434\u0435\u043B\u043E\u0432 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0431\u0435\u0437 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0432\u0441\u0435\u0439 \u043D\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B. \u042D\u0442\u0430, \u043A\u0430\u0437\u0430\u043B\u043E\u0441\u044C \u0431\u044B, \u043D\u0435\u0431\u043E\u043B\u044C\u0448\u0430\u044F \u0434\u0435\u0442\u0430\u043B\u044C \u043E\u043A\u0430\u0437\u0430\u043B\u0430 \u043E\u0433\u0440\u043E\u043C\u043D\u043E\u0435 \u0432\u043B\u0438\u044F\u043D\u0438\u0435 \u043D\u0430 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0438 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0441\u0430\u0439\u0442\u043E\u0432, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0432 \u044D\u0442\u043E\u0439 \u0441\u0442\u0430\u0442\u044C\u0435 \u043C\u044B \u043E\u0431\u044A\u044F\u0441\u043D\u0438\u043C \u043A\u043E\u043D\u0446\u0435\u043F\u0446\u0438\u044E \u0438 \u0440\u0430\u0441\u0441\u043C\u043E\u0442\u0440\u0438\u043C \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0434\u0435\u043B\u0430\u044E\u0442 \u044D\u0442\u043E \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u044B\u043C, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 XMLHttpRequest \u0438 API Fetch.

\\n\\n

\\n \\n \\n

\\n

\\n

\\n

\\n

\\n

\\n

\\n

\\n

\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0435 \u0443\u0441\u043B\u043E\u0432\u0438\u044F: \u041E\u0441\u043D\u043E\u0432\u044B JavaScript (\u0441\u043C. \u043F\u0435\u0440\u0432\u044B\u0435 \u0448\u0430\u0433\u0438, \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u043D\u044B\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B, \u043E\u0431\u044A\u0435\u043A\u0442\u044B JavaScript), \u043E\u0441\u043D\u043E\u0432\u044B \u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438\u0445 API
\u0417\u0430\u0434\u0430\u0447\u0430: \u0423\u0437\u043D\u0430\u0442\u044C, \u043A\u0430\u043A \u0438\u0437\u0432\u043B\u0435\u043A\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u0434\u043B\u044F \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B.

\\n\\n

\u0412 \u0447\u0435\u043C \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430?

\u041F\u0435\u0440\u0432\u043E\u043D\u0430\u0447\u0430\u043B\u044C\u043D\u0430\u044F \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0432 \u0418\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0435 \u0431\u044B\u043B\u0430 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 — \u0432\u044B \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u043B\u0438 \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u00A0 web-\u0441\u0430\u0439\u0442\u0430, \u0438 \u0435\u0441\u043B\u0438 \u0432\u0441\u0451 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442, \u043A\u0430\u043A \u0438 \u0434\u043E\u043B\u0436\u043D\u043E, \u0442\u043E \u0432\u0441\u044F \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u0430 \u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0430 \u043D\u0430 \u0432\u0430\u0448\u0435\u043C \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435.

\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u0430 \u0441 \u044D\u0442\u043E\u0439 \u043C\u043E\u0434\u0435\u043B\u044C\u044E \u0437\u0430\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u0442\u043E\u043C, \u0447\u0442\u043E \u0432\u0441\u044F\u043A\u0438\u0439 \u0440\u0430\u0437, \u043A\u043E\u0433\u0434\u0430 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043B\u044E\u0431\u0443\u044E \u0447\u0430\u0441\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0437\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u043D\u0430\u0431\u043E\u0440 \u043F\u0440\u043E\u0434\u0443\u043A\u0442\u043E\u0432 \u0438\u043B\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443, \u0432\u0430\u043C \u043D\u0443\u0436\u043D\u043E \u0441\u043D\u043E\u0432\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0432\u0441\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443. \u042D\u0442\u043E \u043E\u0447\u0435\u043D\u044C \u0440\u0430\u0441\u0442\u043E\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0438 \u043F\u0440\u0438\u0432\u043E\u0434\u0438\u0442 \u043A \u043F\u043B\u043E\u0445\u043E\u043C\u0443 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u043C\u0443 \u043E\u043F\u044B\u0442\u0443, \u043E\u0441\u043E\u0431\u0435\u043D\u043D\u043E \u043F\u043E \u043C\u0435\u0440\u0435 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0442\u0441\u044F \u0432\u0441\u0435 \u0431\u043E\u043B\u0435\u0435 \u0441\u043B\u043E\u0436\u043D\u044B\u043C\u0438.

\u041F\u043E\u044F\u0432\u043B\u0435\u043D\u0438\u0435 Ajax

\u042D\u0442\u043E \u043F\u0440\u0438\u0432\u0435\u043B\u043E \u043A \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044E \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0439, \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u044E\u0449\u0438\u0445 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\u043C \u0437\u0430\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044C \u043D\u0435\u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u044B \u0434\u0430\u043D\u043D\u044B\u0445 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, HTML, <>, JSON \u0438\u043B\u0438 \u043E\u0431\u044B\u0447\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442) \u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0438\u0445 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438, \u043F\u043E\u043C\u043E\u0433\u0430\u044F \u0440\u0435\u0448\u0430\u0442\u044C \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0443, \u043E\u043F\u0438\u0441\u0430\u043D\u043D\u0443\u044E\u00A0\u0432\u044B\u0448\u0435.


\u042D\u0442\u043E \u0434\u043E\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044F \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0442\u0430\u043A\u0438\u0445 API, \u043A\u0430\u043A <> \u0438\u043B\u0438 — \u0431\u043E\u043B\u0435\u0435 \u043D\u043E\u0432\u043E\u0439 — Fetch API. \u042D\u0442\u0438 \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0438 \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u044E\u0442 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\u043C \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441\u044B HTTP \u0434\u043B\u044F \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432, \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E \u043C\u0435\u0440\u0435 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438 \u043F\u0435\u0440\u0435\u0434 \u0438\u0445 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043C.

\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0412\u043D\u0430\u0447\u0430\u043B\u0435 \u044D\u0442\u0430 \u043E\u0431\u0449\u0430\u044F \u0442\u0435\u0445\u043D\u0438\u043A\u0430 \u0431\u044B\u043B\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430 \u043A\u0430\u043A \u0410\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0439 JavaScript \u0438 XML (Ajax), \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u043E\u043D\u0430, \u043A\u0430\u043A \u043F\u0440\u0430\u0432\u0438\u043B\u043E, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043B\u0430 <> \u0434\u043B\u044F \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0434\u0430\u043D\u043D\u044B\u0445 XML. \u0412 \u043D\u0430\u0448\u0438 \u0434\u043D\u0438 \u044D\u0442\u043E \u043E\u0431\u044B\u0447\u043D\u043E \u043D\u0435 \u0442\u0430\u043A (\u0432\u044B, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043E, \u0431\u0443\u0434\u0435\u0442\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C XMLHttpRequest \u0438\u043B\u0438 Fetch \u0434\u043B\u044F \u0437\u0430\u043F\u0440\u043E\u0441\u0430 JSON), \u043D\u043E \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0432\u0441\u0435 \u0442\u043E\u0442 \u0436\u0435, \u0438 \u0442\u0435\u0440\u043C\u0438\u043D \u00ABAjax\u00BB \u043F\u043E-\u043F\u0440\u0435\u0436\u043D\u0435\u043C\u0443 \u0447\u0430\u0441\u0442\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u044D\u0442\u043E\u0439 \u0442\u0435\u0445\u043D\u0438\u043A\u0438.

\u041C\u043E\u0434\u0435\u043B\u044C Ajax \u043F\u0440\u0435\u0434\u043F\u043E\u043B\u0430\u0433\u0430\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435 \u0432\u0435\u0431-API \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u0440\u043E\u043A\u0441\u0438 \u0434\u043B\u044F \u0431\u043E\u043B\u0435\u0435 \u0440\u0430\u0437\u0443\u043C\u043D\u043E\u0433\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0434\u0430\u043D\u043D\u044B\u0445, \u0430 \u043D\u0435 \u043F\u0440\u043E\u0441\u0442\u043E \u0434\u043B\u044F \u0442\u043E\u0433\u043E, \u0447\u0442\u043E\u0431\u044B \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043B \u0432\u0441\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043F\u043E\u0434\u0443\u043C\u0430\u0435\u043C \u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0438 \u044D\u0442\u043E\u0433\u043E:

\\n\\n

    \\n
  1. \u041F\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043D\u0430 \u043E\u0434\u0438\u043D \u0438\u0437 \u0432\u0430\u0448\u0438\u0445 \u043B\u044E\u0431\u0438\u043C\u044B\u0445 \u0441\u0430\u0439\u0442\u043E\u0432, \u0431\u043E\u0433\u0430\u0442\u044B\u0445 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0435\u0439, \u0442\u0430\u043A\u0438\u0445 \u043A\u0430\u043A Amazon, YouTube, CNN \u0438 \u0442.\u0434., \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0435\u0433\u043E. \\n
  2. \u0422\u0435\u043F\u0435\u0440\u044C \u043D\u0430\u0439\u0434\u0438\u0442\u0435 \u0447\u0442\u043E-\u043D\u0438\u0431\u0443\u0434\u044C, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u043D\u043E\u0432\u044B\u0439 \u043F\u0440\u043E\u0434\u0443\u043A\u0442. \u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u043A\u043E\u043D\u0442\u0435\u043D\u0442 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u0441\u044F, \u043D\u043E \u0431\u043E\u043B\u044C\u0448\u0430\u044F \u0447\u0430\u0441\u0442\u044C \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438, \u043F\u043E\u0434\u043E\u0431\u043D\u043E\u0439 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0443, \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043A\u043E\u043B\u043E\u043D\u0442\u0438\u0442\u0443\u043B\u0443, \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u043C\u0443 \u043C\u0435\u043D\u044E \u0438 \u0442. \u0434., \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u043D\u0435\u0438\u0437\u043C\u0435\u043D\u043D\u043E\u0439. \\n

\\n\\n

\u042D\u0442\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0440\u043E\u0448\u043E, \u043F\u043E\u0442\u043E\u043C\u0443 \u0447\u0442\u043E:

\\n\\n

    \\n
  • \u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043D\u0430\u043C\u043D\u043E\u0433\u043E \u0431\u044B\u0441\u0442\u0440\u0435\u0435, \u0438 \u0432\u0430\u043C \u043D\u0435 \u043D\u0443\u0436\u043D\u043E \u0436\u0434\u0430\u0442\u044C \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B, \u0430 \u044D\u0442\u043E \u043E\u0437\u043D\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043E \u0441\u0430\u0439\u0442 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0431\u044B\u0441\u0442\u0440\u0435\u0435 \u0438 \u0432\u043E\u0441\u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442\u0441\u044F \u0431\u043E\u043B\u0435\u0435 \u043E\u0442\u0437\u044B\u0432\u0447\u0438\u0432\u044B\u043C. \\n
  • \u041C\u0435\u043D\u044C\u0448\u0435 \u0434\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u043A\u0430\u0436\u0434\u043E\u043C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0438, \u0447\u0442\u043E \u043E\u0437\u043D\u0430\u0447\u0430\u0435\u0442 \u043C\u0435\u043D\u044C\u0448\u0435\u0435\u00A0\u043F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u043F\u0443\u0441\u043A\u043D\u043E\u0439 \u0441\u043F\u043E\u0441\u043E\u0431\u043D\u043E\u0441\u0442\u0438. \u042D\u0442\u043E \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0442\u0430\u043A\u043E\u0439 \u0431\u043E\u043B\u044C\u0448\u043E\u0439 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u043E\u0439 \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u0441\u0442\u043E\u043B\u0435 \u0432 \u0448\u0438\u0440\u043E\u043A\u043E\u043F\u043E\u043B\u043E\u0441\u043D\u043E\u043C \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438, \u043D\u043E \u044D\u0442\u043E \u0441\u0435\u0440\u044C\u0435\u0437\u043D\u0430\u044F \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430 \u043D\u0430 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0445 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430\u0445 \u0438 \u0432 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044E\u0449\u0438\u0445\u0441\u044F \u0441\u0442\u0440\u0430\u043D\u0430\u0445, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u043F\u043E\u0432\u0441\u0435\u043C\u0435\u0441\u0442\u043D\u043E\u0433\u043E \u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442-\u0441\u0435\u0440\u0432\u0438\u0441\u0430. \\n

\\n\\n

\u0427\u0442\u043E\u0431\u044B \u0443\u0441\u043A\u043E\u0440\u0438\u0442\u044C \u0440\u0430\u0431\u043E\u0442\u0443, \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u0430\u0439\u0442\u044B \u0442\u0430\u043A\u0436\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u044E\u0442 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0435 \u0444\u0430\u0439\u043B\u044B \u0438 \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0430 \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043F\u0440\u0438 \u043F\u0435\u0440\u0432\u043E\u043C \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u0438 \u043A \u0441\u0430\u0439\u0442\u0443, \u0430 \u044D\u0442\u043E \u043E\u0437\u043D\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043E \u043F\u0440\u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u043F\u043E\u0441\u0435\u0449\u0435\u043D\u0438\u044F\u0445 \u043E\u043D\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u043C\u0435\u0441\u0442\u043E \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0441\u0432\u0435\u0436\u0438\u0445 \u043A\u043E\u043F\u0438\u0439,\u00A0\u00A0\u043A\u0430\u043A \u043F\u0440\u0438 \u043F\u0435\u0440\u0432\u043E\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B. \u0421\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0442\u043E\u043B\u044C\u043A\u043E\u00A0\u043F\u0440\u0438 \u0435\u0433\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0438.

\u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u0437\u0430\u043F\u0440\u043E\u0441 Ajax

\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0438\u043C, \u043A\u0430\u043A \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0442\u0430\u043A\u043E\u0439 \u0437\u0430\u043F\u0440\u043E\u0441, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u043A\u0430\u043A <>, \u0442\u0430\u043A \u0438 Fetch. \u0412 \u044D\u0442\u0438\u0445 \u043F\u0440\u0438\u043C\u0435\u0440\u0430\u0445 \u043C\u044B \u0431\u0443\u0434\u0435\u043C \u0437\u0430\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435 \u0438\u0437 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E.

\u042D\u0442\u043E\u0442\u00A0\u043D\u0430\u0431\u043E\u0440 \u0444\u0430\u0439\u043B\u043E\u0432 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u043A\u0430\u043A \u043D\u0430\u0448\u0430 \u043F\u043E\u0434\u0434\u0435\u043B\u044C\u043D\u0430\u044F \u0431\u0430\u0437\u0430 \u0434\u0430\u043D\u043D\u044B\u0445; \u0432 \u0440\u0435\u0430\u043B\u044C\u043D\u043E\u043C \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 \u043C\u044B \u0441 \u0431\u043E\u043B\u044C\u0448\u0435\u0439 \u0432\u0435\u0440\u043E\u044F\u0442\u043D\u043E\u0441\u0442\u044C\u044E \u0431\u0443\u0434\u0435\u043C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u0440\u0432\u0435\u0440\u043D\u044B\u0439 \u044F\u0437\u044B\u043A, \u0442\u0430\u043A\u043E\u0439 \u043A\u0430\u043A PHP, Python \u0438\u043B\u0438 Node, \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044C \u043D\u0430\u0448\u0438 \u0434\u0430\u043D\u043D\u044B\u0435 \u0438\u0437 \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445. \u0417\u0434\u0435\u0441\u044C, \u043E\u0434\u043D\u0430\u043A\u043E, \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0435\u0433\u043E \u043F\u0440\u043E\u0441\u0442\u044B\u043C \u0438 \u0441\u043E\u0441\u0440\u0435\u0434\u043E\u0442\u043E\u0447\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0441\u0442\u043E\u0440\u043E\u043D\u0435 \u043A\u043B\u0438\u0435\u043D\u0442\u0430.

XMLHttpRequest

XMLHttpRequest (\u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0447\u0430\u0441\u0442\u043E \u0441\u043E\u043A\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044F \u0434\u043E XHR) \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434\u043E\u0432\u043E\u043B\u044C\u043D\u043E \u0441\u0442\u0430\u0440\u043E\u0439 \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0435\u0439 \u0441\u0435\u0439\u0447\u0430\u0441 — \u043E\u043D \u0431\u044B\u043B \u0438\u0437\u043E\u0431\u0440\u0435\u0442\u0435\u043D Microsoft \u0432 \u043A\u043E\u043D\u0446\u0435 1990-\u0445 \u0433\u043E\u0434\u043E\u0432 \u0438 \u0443\u0436\u0435 \u0434\u043E\u0432\u043E\u043B\u044C\u043D\u043E \u0434\u043E\u043B\u0433\u043E \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445.

\u0427\u0442\u043E\u0431\u044B \u043D\u0430\u0447\u0430\u0442\u044C \u044D\u0442\u043E\u0442 \u043F\u0440\u0438\u043C\u0435\u0440, \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u0443\u044E \u043A\u043E\u043F\u0438\u044E ajax-start.html \u0438 \u0447\u0435\u0442\u044B\u0440\u0435\u0445 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 — verse1.txt, verse2.txt, verse3.txt \u0438 verse4.txt — \u0432 \u043D\u043E\u0432\u043E\u043C \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435 \u043D\u0430 \u0432\u0430\u0448\u0435\u043C \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435. \u0412 \u044D\u0442\u043E\u043C \u043F\u0440\u0438\u043C\u0435\u0440\u0435 \u043C\u044B \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043C \u0434\u0440\u0443\u0433\u043E\u0435\u00A0\u0441\u0442\u0438\u0445\u043E\u0442\u0432\u043E\u0440\u0435\u043D\u0438\u0435\u00A0(\u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432\u044B \u0432\u043F\u043E\u043B\u043D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u0442\u044C) \u0447\u0435\u0440\u0435\u0437 XHR, \u043A\u043E\u0433\u0434\u0430 \u043E\u043D \u0431\u0443\u0434\u0435\u0442 \u0432\u044B\u0431\u0440\u0430\u043D \u0432 \u0432\u044B\u043F\u0430\u0434\u0430\u044E\u0449\u0435\u043C \u043C\u0435\u043D\u044E.

\u0412\u043D\u0443\u0442\u0440\u0438 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 <> \u0434\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043A\u043E\u0434. \u0412 \u043D\u0435\u043C \u0445\u0440\u0430\u043D\u0438\u0442\u0441\u044F \u0441\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B <> \u0438 <> \u0432 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442\u0441\u044F <> \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0430 \u0441\u043E\u0431\u044B\u0442\u0438\u0439, \u0442\u0430\u043A \u0447\u0442\u043E, \u043A\u043E\u0433\u0434\u0430 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 select \u0438\u0437\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F, \u0435\u0433\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044F \u0432\u044B\u0437\u044B\u0432\u0430\u0435\u043C\u043E\u0439 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 updateDisplay() \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430.

\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u043C \u043D\u0430\u0448\u0443 \u0444\u0443\u043D\u043A\u0446\u0438\u044E updateDisplay() . \u041F\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043E, \u043F\u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043D\u0438\u0436\u0435 \u0441\u0432\u043E\u0435\u0433\u043E \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0433\u043E \u0431\u043B\u043E\u043A\u0430 \u043A\u043E\u0434\u0430 — \u044D\u0442\u043E \u043F\u0443\u0441\u0442\u0430\u044F \u043E\u0431\u043E\u043B\u043E\u0447\u043A\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u0438:

\u041C\u044B \u043D\u0430\u0447\u043D\u0435\u043C \u043D\u0430\u0448\u0443 \u0444\u0443\u043D\u043A\u0446\u0438\u044E \u0441 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F\u00A0\u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0433\u043E\u00A0URL-\u0430\u0434\u0440\u0435\u0441\u0430, \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E\u00A0\u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u0444\u0430\u0439\u043B, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0438 \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043F\u043E\u043D\u0430\u0434\u043E\u0431\u0438\u0442\u0441\u044F \u043D\u0430\u043C \u043F\u043E\u0437\u0436\u0435. \u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 <> \u0432 \u043B\u044E\u0431\u043E\u0439 \u043C\u043E\u043C\u0435\u043D\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u0442\u0435\u043A\u0441\u0442\u043E\u043C \u0432\u043D\u0443\u0442\u0440\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E <> (\u0435\u0441\u043B\u0438 \u0432\u044B \u043D\u0435 \u0443\u043A\u0430\u0436\u0435\u0442\u0435 \u0434\u0440\u0443\u0433\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0435 value) — \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u00ABVerse 1\u00BB. \u0421\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0439 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u0444\u0430\u0439\u043B \u0441\u0442\u0438\u0445\u0430 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u00ABverse1.txt\u00BB \u0438 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0442\u043E\u043C \u0436\u0435 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435, \u0447\u0442\u043E \u0438 \u0444\u0430\u0439\u043B HTML, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430.

\u0422\u0435\u043C \u043D\u0435 \u043C\u0435\u043D\u0435\u0435, \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u044B, \u043A\u0430\u043A \u043F\u0440\u0430\u0432\u0438\u043B\u043E, \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u044B \u043A \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443, \u0438 \u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u043D\u0435 \u0438\u043C\u0435\u0435\u0442 \u0441\u0438\u043C\u0432\u043E\u043B\u0430 \\\»\u043F\u0440\u043E\u0431\u0435\u043B\u0430\\\». \u0427\u0442\u043E\u0431\u044B \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u00ABVerse 1\u00BB \u0432 \u00ABverse1.txt\u00BB, \u043D\u0430\u043C \u043D\u0443\u0436\u043D\u043E \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C V \u0432 \u043D\u0438\u0436\u043D\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u043E\u0431\u0435\u043B \u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C .txt \u0432 \u043A\u043E\u043D\u0435\u0446. \u042D\u0442\u043E \u043C\u043E\u0436\u043D\u043E \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E <>, <> \u0438 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u043A\u043E\u043D\u043A\u0430\u0442\u0435\u043D\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u043E\u043A. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 updateDisplay() :

\u0427\u0442\u043E\u0431\u044B \u043D\u0430\u0447\u0430\u0442\u044C \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 XHR, \u0432\u0430\u043C \u043D\u0443\u0436\u043D\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 \u0437\u0430\u043F\u0440\u043E\u0441\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440 <>. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u0442\u044C \u044D\u0442\u043E\u0442 \u043E\u0431\u044A\u0435\u043A\u0442 \u0442\u0430\u043A, \u043A\u0430\u043A \u0432\u0430\u043C \u043D\u0440\u0430\u0432\u0438\u0442\u0441\u044F, \u043D\u043E \u043C\u044B \u0431\u0443\u0434\u0435\u043C \u043D\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0435\u0433\u043E\u00A0 request (\u0437\u0430\u043F\u0440\u043E\u0441\u043E\u043C), \u0447\u0442\u043E\u0431\u044B \u0432\u0441\u0435 \u0431\u044B\u043B\u043E \u043F\u0440\u043E\u0441\u0442\u043E. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u043D\u0438\u0436\u0435 \u0441\u0442\u0440\u043E\u043A\u0438:

\u0417\u0430\u0442\u0435\u043C \u0432\u0430\u043C \u043D\u0443\u0436\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0442\u043E\u0434 <>, \u0447\u0442\u043E\u0431\u044B \u0443\u043A\u0430\u0437\u0430\u0442\u044C, \u043A\u0430\u043A\u043E\u0439 HTTP request method \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u043B\u044F \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0438\u0437 \u0441\u0435\u0442\u0438 \u0438 \u043A\u0430\u043A\u043E\u0439 \u0435\u0433\u043E URL-\u0430\u0434\u0440\u0435\u0441. \u041C\u044B \u043F\u0440\u043E\u0441\u0442\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C \u043C\u0435\u0442\u043E\u0434 GET \u0437\u0434\u0435\u0441\u044C \u0438 \u0437\u0430\u0434\u0430\u0435\u043C URL \u043A\u0430\u043A \u043D\u0430\u0448\u0443 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u0443\u044E url . \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u044D\u0442\u043E \u043D\u0438\u0436\u0435 \u0432\u0430\u0448\u0435\u0439 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0438:

\u0417\u0430\u0442\u0435\u043C \u043C\u044B \u0437\u0430\u0434\u0430\u0434\u0438\u043C \u0442\u0438\u043F \u043E\u0436\u0438\u0434\u0430\u0435\u043C\u043E\u0433\u043E \u043E\u0442\u0432\u0435\u0442\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E <> — \u043A\u0430\u043A text . \u0417\u0434\u0435\u0441\u044C \u044D\u0442\u043E \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u043E \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u043C — XHR \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043A\u0441\u0442 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E — \u043D\u043E \u044D\u0442\u043E \u0445\u043E\u0440\u043E\u0448\u0430\u044F \u0438\u0434\u0435\u044F, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u0438\u0432\u044B\u043A\u043D\u0443\u0442\u044C \u043A \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0435 \u044D\u0442\u043E\u0433\u043E, \u0435\u0441\u043B\u0438 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043F\u044B \u0434\u0430\u043D\u043D\u044B\u0445 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435:

\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0438\u0437 \u0441\u0435\u0442\u0438 — \u044D\u0442\u043E <> \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F, \u043E\u0437\u043D\u0430\u0447\u0430\u044E\u0449\u0430\u044F, \u0447\u0442\u043E \u0432\u0430\u043C \u043D\u0443\u0436\u043D\u043E \u0434\u043E\u0436\u0434\u0430\u0442\u044C\u0441\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u044D\u0442\u043E\u0439 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0440\u0435\u0441\u0443\u0440\u0441 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044F \u0438\u0437 \u0441\u0435\u0442\u0438), \u043F\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043C \u0432\u044B \u0441\u043C\u043E\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0447\u0442\u043E-\u043B\u0438\u0431\u043E \u0441 \u044D\u0442\u0438\u043C \u043E\u0442\u0432\u0435\u0442\u043E\u043C, \u0438\u043D\u0430\u0447\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044B\u0431\u0440\u043E\u0448\u0435\u043D\u0430 \u043E\u0448\u0438\u0431\u043A\u0430. XHR \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u0432\u0430\u043C \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u044D\u0442\u043E, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A \u0441\u043E\u0431\u044B\u0442\u0438\u044F <> — \u043E\u043D \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0432\u043E\u0437\u043D\u0438\u043A\u043D\u043E\u0432\u0435\u043D\u0438\u0438 \u0441\u043E\u0431\u044B\u0442\u0438\u044F <> (\u043A\u043E\u0433\u0434\u0430 \u043E\u0442\u0432\u0435\u0442 \u0432\u0435\u0440\u043D\u0443\u043B\u0441\u044F). \u041A\u043E\u0433\u0434\u0430 \u044D\u0442\u043E \u043F\u0440\u043E\u0438\u0437\u043E\u0439\u0434\u0435\u0442, \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 \u0431\u0443\u0434\u0443\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0432 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0435 response (\u043E\u0442\u0432\u0435\u0442) \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 XHR.

\u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043D\u0438\u0436\u0435 \u0432\u0430\u0448\u0435\u0433\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F. \u0412\u044B \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u0447\u0442\u043E \u0432\u043D\u0443\u0442\u0440\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0430 \u0441\u043E\u0431\u044B\u0442\u0438\u044F onload \u043C\u044B \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C textContent poemDisplay (\u044D\u043B\u0435\u043C\u0435\u043D\u0442 <>) \u0432 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 <>.

\u0412\u044B\u0448\u0435\u043F\u0440\u0438\u0432\u0435\u0434\u0435\u043D\u043D\u0430\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u0437\u0430\u043F\u0440\u043E\u0441\u0430 XHR \u00A0\u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0442\u044C\u0441\u044F \u0434\u043E \u0442\u0435\u0445 \u043F\u043E\u0440, \u043F\u043E\u043A\u0430 \u043C\u044B \u043D\u0435 \u0432\u044B\u0437\u043E\u0432\u0435\u043C \u043C\u0435\u0442\u043E\u0434 <>. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043D\u0438\u0436\u0435 \u0432\u0430\u0448\u0435\u0433\u043E \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0433\u043E \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0432\u044B\u0437\u043E\u0432\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u0438:

\u041E\u0434\u043D\u0430 \u0438\u0437 \u043F\u0440\u043E\u0431\u043B\u0435\u043C \u0441 \u043F\u0440\u0438\u043C\u0435\u0440\u043E\u043C \u0437\u0430\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u0442\u043E\u043C, \u0447\u0442\u043E \u043E\u043D \u043D\u0435 \u043F\u043E\u043A\u0430\u0436\u0435\u0442 \u043D\u0438 \u043E\u0434\u043D\u043E\u0433\u043E \u0441\u0442\u0438\u0445\u043E\u0442\u0432\u043E\u0440\u0435\u043D\u0438\u044F, \u043A\u043E\u0433\u0434\u0430 \u043E\u043D \u0432\u043F\u0435\u0440\u0432\u044B\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F. \u0427\u0442\u043E\u0431\u044B \u0438\u0441\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u044D\u0442\u043E, \u0434\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0434\u0432\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432\u043D\u0438\u0437\u0443 \u0432\u0430\u0448\u0435\u0433\u043E \u043A\u043E\u0434\u0430 (\u0447\u0443\u0442\u044C \u0432\u044B\u0448\u0435 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E \u0442\u0435\u0433\u0430 ), \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0441\u0442\u0438\u0445 1 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442 <> \u0432\u0441\u0435\u0433\u0434\u0430 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435:

\u041E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043E \u043F\u0440\u0438\u043C\u0435\u0440\u0430 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430

\u041D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044B (\u0432\u043A\u043B\u044E\u0447\u0430\u044F Chrome) \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441\u044B XHR, \u0435\u0441\u043B\u0438 \u0432\u044B \u043F\u0440\u043E\u0441\u0442\u043E \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0435 \u043F\u0440\u0438\u043C\u0435\u0440 \u0438\u0437 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430. \u042D\u0442\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043E \u0441 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u043C\u0438 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438 (\u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 \u043E \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438 \u0432 \u0418\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0435, \u043E\u0437\u043D\u0430\u043A\u043E\u043C\u044C\u0442\u0435\u0441\u044C \u0441 Website security).

\u0427\u0442\u043E\u0431\u044B \u043E\u0431\u043E\u0439\u0442\u0438 \u044D\u0442\u043E, \u043D\u0430\u043C \u043D\u0443\u0436\u043D\u043E \u043F\u0440\u043E\u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0440, \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0432 \u0435\u0433\u043E \u0447\u0435\u0440\u0435\u0437 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440. \u0427\u0442\u043E\u0431\u044B \u0443\u0437\u043D\u0430\u0442\u044C, \u043A\u0430\u043A \u044D\u0442\u043E \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u041A\u0430\u043A \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0442\u0435\u0441\u0442\u043E\u0432\u044B\u0439 \u0441\u0435\u0440\u0432\u0435\u0440?

Fetch

API-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Fetch — \u044D\u0442\u043E, \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C, \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0437\u0430\u043C\u0435\u043D\u0430 XHR — \u043D\u0435\u0434\u0430\u0432\u043D\u043E \u043E\u043D \u0431\u044B\u043B \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445 \u0434\u043B\u044F \u0443\u043F\u0440\u043E\u0449\u0435\u043D\u0438\u044F \u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0445 HTTP-\u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u0432 JavaScript, \u043A\u0430\u043A \u0434\u043B\u044F \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u0432, \u0442\u0430\u043A \u0438 \u0434\u043B\u044F \u0434\u0440\u0443\u0433\u0438\u0445 API, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u0442\u0440\u043E\u044F\u0442\u0441\u044F \u043F\u043E\u0432\u0435\u0440\u0445 Fetch.

\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0435\u043C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u043F\u0440\u0438\u043C\u0435\u0440, \u0447\u0442\u043E\u0431\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C Fetch!

\u0421\u0434\u0435\u043B\u0430\u0439\u0442\u0435 \u043A\u043E\u043F\u0438\u044E \u0441\u0432\u043E\u0435\u0433\u043E \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0433\u043E \u0433\u043E\u0442\u043E\u0432\u043E\u0433\u043E \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043F\u0440\u0438\u043C\u0435\u0440\u043E\u0432. (\u0415\u0441\u043B\u0438 \u0432\u044B \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u043B\u0438 \u043D\u0430\u0434 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u043C \u0443\u043F\u0440\u0430\u0436\u043D\u0435\u043D\u0438\u0435\u043C, \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043A\u0430\u0442\u0430\u043B\u043E\u0433 \u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u043D\u0435\u0433\u043E \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u043A\u043E\u043F\u0438\u0438 xhr-basic.html \u0438 \u0447\u0435\u0442\u044B\u0440\u0435\u0445 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u2014 verse1.txt, verse2.txt, verse3.txt \u0438 verse4.txt.)

\u0412\u043D\u0443\u0442\u0440\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 updateDisplay() \u043D\u0430\u0439\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 XHR:

\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u0435 \u0432\u0435\u0441\u044C XHR-\u043A\u043E\u0434 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u043C:

\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043F\u0440\u0438\u043C\u0435\u0440 \u0432 \u0441\u0432\u043E\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 (\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 \u0435\u0433\u043E \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440), \u0438 \u043E\u043D \u0434\u043E\u043B\u0436\u0435\u043D \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0442\u0430\u043A \u0436\u0435, \u043A\u0430\u043A \u0438 \u0432\u0435\u0440\u0441\u0438\u044F XHR, \u043F\u0440\u0438 \u0443\u0441\u043B\u043E\u0432\u0438\u0438, \u0447\u0442\u043E \u0432\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0435 \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440.

\u0418\u0442\u0430\u043A, \u0447\u0442\u043E \u043F\u0440\u043E\u0438\u0441\u0445\u043E\u0434\u0438\u0442 \u0432 \u043A\u043E\u0434\u0435 Fetch?

\u041F\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043E, \u043C\u044B \u0432\u044B\u0437\u044B\u0432\u0430\u0435\u043C \u043C\u0435\u0442\u043E\u0434 <>, \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044F \u0435\u043C\u0443 URL-\u0430\u0434\u0440\u0435\u0441 \u0440\u0435\u0441\u0443\u0440\u0441\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C. \u042D\u0442\u043E \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0439 \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442 <> \u0432 XHR, \u043F\u043B\u044E\u0441 \u0432\u0430\u043C \u043D\u0435 \u043D\u0443\u0436\u0435\u043D \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442 .send() .

\u041F\u043E\u0441\u043B\u0435 \u044D\u0442\u043E\u0433\u043E \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u043C\u0435\u0442\u043E\u0434 <>, \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0439 \u0432 \u043A\u043E\u043D\u0435\u0446 fetch() — \u044D\u0442\u043E\u0442 \u043C\u0435\u0442\u043E\u0434 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0447\u0430\u0441\u0442\u044C\u044E <> — \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u044F JavaScript \u0434\u043B\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439. fetch() \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043E\u0442\u0432\u0435\u0442, \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u043E\u0431\u0440\u0430\u0442\u043D\u043E \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, — \u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C .then() \u0434\u043B\u044F \u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u043A\u043E\u0434\u0430 \u043F\u043E\u0441\u043B\u0435 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043E, \u0447\u0442\u043E \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u0435\u0439, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u043C\u044B \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u043B\u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u043D\u0435\u0435. \u042D\u0442\u043E \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0430 \u0441\u043E\u0431\u044B\u0442\u0438\u044F onload \u0432 XHR-\u0432\u0435\u0440\u0441\u0438\u0438.

\u042D\u0442\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043E\u0442\u0432\u0435\u0442 \u043E\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430, \u043A\u043E\u0433\u0434\u0430 \u043E\u0431\u0435\u0449\u0430\u0435\u0442 fetch() . \u0412\u043D\u0443\u0442\u0440\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u043C\u044B \u0431\u0435\u0440\u0435\u043C \u043E\u0442\u0432\u0435\u0442 \u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u043C \u0435\u0433\u043E \u043C\u0435\u0442\u043E\u0434 <>, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0442\u0432\u0435\u0442 \u043A\u0430\u043A \u043D\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442. \u042D\u0442\u043E \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442 request.responseType = ‘text’ \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 XHR.

\u0412\u044B \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u0447\u0442\u043E text() \u0442\u0430\u043A\u0436\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043C\u044B \u043F\u0440\u0438\u0432\u044F\u0437\u044B\u0432\u0430\u0435\u043C \u043A \u043D\u0435\u043C\u0443 \u0434\u0440\u0443\u0433\u043E\u0439 .then() , \u0432\u043D\u0443\u0442\u0440\u0438 \u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u043C\u044B \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C \u0444\u0443\u043D\u043A\u0446\u0438\u044E \u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043D\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043E\u0431\u0435\u0449\u0430\u0435\u0442 \u0440\u0435\u0448\u0435\u043D\u0438\u0435 text() .

\u0412\u043D\u0443\u0442\u0440\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0435\u0433\u043E \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u044F \u043C\u044B \u0434\u0435\u043B\u0430\u0435\u043C \u0442\u043E \u0436\u0435 \u0441\u0430\u043C\u043E\u0435, \u0447\u0442\u043E \u0438 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 XHR, — \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 <> \u0432 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435.

\u041F\u043E\u043C\u0438\u043C\u043E \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0439

\u041E\u0431\u0435\u0449\u0430\u043D\u0438\u044F \u043D\u0435\u043C\u043D\u043E\u0433\u043E \u0437\u0430\u043F\u0443\u0442\u044B\u0432\u0430\u044E\u0442 \u043F\u0435\u0440\u0432\u044B\u0439 \u0440\u0430\u0437, \u043A\u043E\u0433\u0434\u0430 \u0432\u044B \u0438\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0435, \u043D\u043E \u043D\u0435 \u0431\u0435\u0441\u043F\u043E\u043A\u043E\u0439\u0442\u0435\u0441\u044C \u043E\u0431 \u044D\u0442\u043E\u043C \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0434\u043E\u043B\u0433\u043E. \u0427\u0435\u0440\u0435\u0437 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u0432\u044B \u043F\u0440\u0438\u0432\u044B\u043A\u043D\u0435\u0442\u0435 \u043A \u043D\u0438\u043C, \u043E\u0441\u043E\u0431\u0435\u043D\u043D\u043E, \u043A\u043E\u0433\u0434\u0430 \u0432\u044B \u0443\u0437\u043D\u0430\u0435\u0442\u0435 \u0431\u043E\u043B\u044C\u0448\u0435 \u043E \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 JavaScript-API. \u0411\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u043E \u0438\u0437 \u043D\u0438\u0445 \u0432 \u0431\u043E\u043B\u044C\u0448\u0435\u0439 \u0441\u0442\u0435\u043F\u0435\u043D\u0438 \u043E\u0441\u043D\u043E\u0432\u0430\u043D\u044B \u043D\u0430 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u044F\u0445.

\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0438\u043C \u043D\u0430 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0443 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0439 \u0441\u0432\u0435\u0440\u0445\u0443, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C, \u043C\u043E\u0436\u0435\u043C \u043B\u0438 \u043C\u044B \u0435\u0449\u0435 \u043D\u0435\u043C\u043D\u043E\u0433\u043E \u043F\u043E\u043D\u044F\u0442\u044C \u044D\u0442\u043E:

\u0412 \u043F\u0435\u0440\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0435 \u0433\u043E\u0432\u043E\u0440\u0438\u0442\u0441\u044F: \u00AB\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0440\u0435\u0441\u0443\u0440\u0441, \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0439 \u043F\u043E \u0430\u0434\u0440\u0435\u0441\u0443 url\u00BB (fetch(url) ) \u0438 \u00AB\u0437\u0430\u0442\u0435\u043C \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u0443\u044E \u0444\u0443\u043D\u043A\u0446\u0438\u044E, \u043A\u043E\u0433\u0434\u0430 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043E\u00BB ( .then(function() < . >) ). \u00ABResolve\u00BB \u043E\u0437\u043D\u0430\u0447\u0430\u0435\u0442 \u00AB\u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u043A\u0430\u043A\u043E\u0439-\u0442\u043E \u043C\u043E\u043C\u0435\u043D\u0442 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C\u00BB. \u0423\u043A\u0430\u0437\u0430\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0437\u0430\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0441 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0433\u043E URL (\u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C HTTP-\u0437\u0430\u043F\u0440\u043E\u0441\u0430) \u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430 \u043E\u0442\u0432\u0435\u0442\u0430 \u0434\u043B\u044F \u043D\u0430\u0441, \u0447\u0442\u043E\u0431\u044B \u0447\u0442\u043E-\u0442\u043E \u0441\u0434\u0435\u043B\u0430\u0442\u044C.

\u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438, \u0444\u0443\u043D\u043A\u0446\u0438\u044F, \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0430\u044F \u0432 then() , \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u043E\u0431\u043E\u0439 \u043A\u0443\u0441\u043E\u043A \u043A\u043E\u0434\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043D\u0435 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0441\u044F \u043D\u0435\u043C\u0435\u0434\u043B\u0435\u043D\u043D\u043E — \u0432\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u043E\u043D \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0432 \u043A\u0430\u043A\u043E\u0439-\u0442\u043E \u043C\u043E\u043C\u0435\u043D\u0442 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C, \u043A\u043E\u0433\u0434\u0430 \u043E\u0442\u0432\u0435\u0442 \u0431\u0443\u0434\u0435\u0442 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D. \u041E\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0442\u043E \u0432\u044B \u0442\u0430\u043A\u0436\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0435 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 \u0432 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0438 \u0446\u0435\u043F\u043E\u0447\u043A\u0443 <> \u0432\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E. \u041D\u0438\u0436\u0435 \u043A\u043E\u0434 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043B\u0430\u0442\u044C \u0442\u043E \u0436\u0435 \u0441\u0430\u043C\u043E\u0435:

\u041F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u043C\u0435\u0442\u043E\u0434 fetch() \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 HTTP-\u043E\u0442\u0432\u0435\u0442, \u043B\u044E\u0431\u0430\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0432\u044B \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442\u0435 \u0432\u043D\u0443\u0442\u0440\u0438 .then() , \u043F\u0440\u0438\u043A\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u043A \u043A\u043E\u043D\u0446\u0443, \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044C\u0441\u044F \u043A\u0430\u043A \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432\u0430\u043C \u043D\u0440\u0430\u0432\u0438\u0442\u0441\u044F — \u043F\u0440\u0438\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0439 \u043D\u0438\u0436\u0435 \u043F\u0440\u0438\u043C\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C:

\u041D\u043E \u0438\u043C\u0435\u0435\u0442 \u0441\u043C\u044B\u0441\u043B \u043D\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0442\u0435\u043C, \u0447\u0442\u043E \u043E\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0435\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435!

\u0422\u0435\u043F\u0435\u0440\u044C \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043E\u0441\u0440\u0435\u0434\u043E\u0442\u043E\u0447\u0438\u043C\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u0438:

\u041E\u0431\u044A\u0435\u043A\u0442 \u043E\u0442\u0432\u0435\u0442\u0430 \u0438\u043C\u0435\u0435\u0442 \u043C\u0435\u0442\u043E\u0434 <>, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0431\u0435\u0440\u0435\u0442 \u043D\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435\u0441\u044F \u0432 \u0442\u0435\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430, \u0438 \u043F\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043E \u0432 \u043E\u0431\u044B\u0447\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0444\u043E\u0440\u043C\u0430\u0442\u043E\u043C, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u0432 \u043D\u0435\u043C \u0410 \u0442\u0430\u043A\u0436\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 (\u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u0443\u044E \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0437\u0434\u0435\u0441\u044C \u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C \u0434\u0440\u0443\u0433\u043E\u0439 <>, \u0432\u043D\u0443\u0442\u0440\u0438 \u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u043C\u044B \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C \u0434\u0440\u0443\u0433\u0443\u044E \u0444\u0443\u043D\u043A\u0446\u0438\u044E, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0434\u0438\u043A\u0442\u0443\u0435\u0442 \u0447\u0442\u043E \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0441 \u044D\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439. \u041C\u044B \u043F\u0440\u043E\u0441\u0442\u043E \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E textContent \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 <> \u043D\u0430\u0448\u0435\u0433\u043E \u0441\u0442\u0438\u0445\u043E\u0442\u0432\u043E\u0440\u0435\u043D\u0438\u044F \u0440\u0430\u0432\u043D\u044B\u043C \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0435, \u0442\u0430\u043A \u0447\u0442\u043E \u044D\u0442\u043E \u043F\u043E\u043B\u0443\u0447\u0430\u0435\u0442\u0441\u044F \u0434\u043E\u0432\u043E\u043B\u044C\u043D\u043E \u043F\u0440\u043E\u0441\u0442\u043E.

\u0422\u0430\u043A\u0436\u0435 \u0441\u0442\u043E\u0438\u0442 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C, \u0447\u0442\u043E \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E \u0441\u0432\u044F\u0437\u044B\u0432\u0430\u0442\u044C \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0431\u043B\u043E\u043A\u043E\u0432 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0439 ( .then() , \u043D\u043E \u0435\u0441\u0442\u044C \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043F\u044B) \u043D\u0430 \u043A\u043E\u043D\u0446\u0435 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430, \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044F \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C\u0443 \u0431\u043B\u043E\u043A\u0443 \u043F\u043E \u043C\u0435\u0440\u0435 \u043F\u0440\u043E\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F \u043F\u043E \u0446\u0435\u043F\u043E\u0447\u043A\u0435 , \u042D\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u044F \u043E\u0447\u0435\u043D\u044C \u043C\u043E\u0449\u043D\u044B\u043C\u0438.

\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0431\u043B\u043E\u043A \u0434\u0435\u043B\u0430\u0435\u0442 \u0442\u043E \u0436\u0435 \u0441\u0430\u043C\u043E\u0435, \u0447\u0442\u043E \u0438 \u043D\u0430\u0448 \u043E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u0438\u043C\u0435\u0440, \u043D\u043E \u043D\u0430\u043F\u0438\u0441\u0430\u043D \u0432 \u0434\u0440\u0443\u0433\u043E\u043C \u0441\u0442\u0438\u043B\u0435:

\u041C\u043D\u043E\u0433\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0438 \u043B\u044E\u0431\u044F\u0442 \u044D\u0442\u043E\u0442 \u0441\u0442\u0438\u043B\u044C \u0431\u043E\u043B\u044C\u0448\u0435, \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u043E\u043D \u0431\u043E\u043B\u0435\u0435 \u043F\u043B\u043E\u0441\u043A\u0438\u0439 \u0438, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u043B\u0435\u0433\u0447\u0435 \u0447\u0438\u0442\u0430\u0442\u044C \u0434\u043B\u044F \u0431\u043E\u043B\u0435\u0435 \u0434\u043B\u0438\u043D\u043D\u044B\u0445 \u0446\u0435\u043F\u043E\u0447\u0435\u043A \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0439 — \u043A\u0430\u0436\u0434\u043E\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0433\u043E, \u0430 \u043D\u0435 \u0432\u043D\u0443\u0442\u0440\u0438 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0433\u043E (\u0447\u0442\u043E \u043C\u043E\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044C \u0433\u0440\u043E\u043C\u043E\u0437\u0434\u043A\u0438\u043C). \u0415\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0435 \u043E\u0442\u043B\u0438\u0447\u0438\u0435 \u0441\u043E\u0441\u0442\u043E\u0438\u0442 \u0432 \u0442\u043E\u043C, \u0447\u0442\u043E \u043C\u044B \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 return \u043F\u0435\u0440\u0435\u0434 response.text() , \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0435\u0433\u043E \u043F\u0435\u0440\u0435\u0434\u0430\u0442\u044C \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E \u0441\u0441\u044B\u043B\u043A\u0443 \u0432 \u0446\u0435\u043F\u043E\u0447\u043A\u0435.

\u041A\u0430\u043A\u043E\u0439 \u043C\u0435\u0445\u0430\u043D\u0438\u0437\u043C \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C?

\u042D\u0442\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043E\u0442 \u0442\u043E\u0433\u043E, \u043D\u0430\u0434 \u043A\u0430\u043A\u0438\u043C \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u043C \u0432\u044B \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442\u0435. XHR \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0434\u0430\u0432\u043D\u043E \u0438 \u0438\u043C\u0435\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u043D\u0443\u044E \u043A\u0440\u043E\u0441\u0441-\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043D\u0443\u044E \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0443. Fetch and Promises, \u0441 \u0434\u0440\u0443\u0433\u043E\u0439 \u0441\u0442\u043E\u0440\u043E\u043D\u044B, \u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u0431\u043E\u043B\u0435\u0435 \u043F\u043E\u0437\u0434\u043D\u0438\u043C \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435\u043C \u043A \u0432\u0435\u0431-\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435, \u0445\u043E\u0442\u044F \u043E\u043D\u0438 \u0445\u043E\u0440\u043E\u0448\u043E \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u0437\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C Internet Explorer \u0438 Safari (\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0430 \u043C\u043E\u043C\u0435\u043D\u0442 \u043D\u0430\u043F\u0438\u0441\u0430\u043D\u0438\u044F Fetch \u0431\u044B\u043B\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0432 \u0441\u0432\u043E\u0435\u043C \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0438).

\u0415\u0441\u043B\u0438 \u0432\u0430\u043C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044C \u0441\u0442\u0430\u0440\u044B\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044B, \u0442\u043E\u0433\u0434\u0430 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u043C \u0440\u0435\u0448\u0435\u043D\u0438\u0435 XHR. \u0415\u0441\u043B\u0438, \u043E\u0434\u043D\u0430\u043A\u043E, \u0432\u044B \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442\u0435 \u043D\u0430\u0434 \u0431\u043E\u043B\u0435\u0435 \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043D\u044B\u043C \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u043C \u0438 \u043D\u0435 \u0442\u0430\u043A \u043E\u0431\u0435\u0441\u043F\u043E\u043A\u043E\u0435\u043D\u044B \u0441\u0442\u0430\u0440\u044B\u043C\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043C\u0438, \u0442\u043E Fetch \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0445\u043E\u0440\u043E\u0448\u0438\u043C \u0432\u044B\u0431\u043E\u0440\u043E\u043C.

\u0412\u0430\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043D\u0443\u0436\u043D\u043E \u0443\u0447\u0438\u0442\u044C\u0441\u044F — Fetch \u0441\u0442\u0430\u043D\u0435\u0442 \u0431\u043E\u043B\u0435\u0435 \u043F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u044B\u043C, \u0442\u0430\u043A \u043A\u0430\u043A Internet Explorer \u043E\u0442\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043E\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F (IE \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u0432 \u043F\u043E\u043B\u044C\u0437\u0443 \u043D\u043E\u0432\u043E\u0433\u043E \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 Microsoft Edge), \u043D\u043E \u0432\u0430\u043C \u043C\u043E\u0436\u0435\u0442 \u043F\u043E\u043D\u0430\u0434\u043E\u0431\u0438\u0442\u044C\u0441\u044F XHR \u0435\u0449\u0435 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0432\u0440\u0435\u043C\u044F.

\u0411\u043E\u043B\u0435\u0435 \u0441\u043B\u043E\u0436\u043D\u044B\u0439 \u043F\u0440\u0438\u043C\u0435\u0440

\u0427\u0442\u043E\u0431\u044B \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C \u0441\u0442\u0430\u0442\u044C\u044E, \u043C\u044B \u0440\u0430\u0441\u0441\u043C\u043E\u0442\u0440\u0438\u043C \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0431\u043E\u043B\u0435\u0435 \u0441\u043B\u043E\u0436\u043D\u044B\u0439 \u043F\u0440\u0438\u043C\u0435\u0440, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0431\u043E\u043B\u0435\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u043D\u044B\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F Fetch. \u041C\u044B \u0441\u043E\u0437\u0434\u0430\u043B\u0438 \u043E\u0431\u0440\u0430\u0437\u0435\u0446 \u0441\u0430\u0439\u0442\u0430 \u043F\u043E\u0434 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u043C The Can Store — \u044D\u0442\u043E \u0432\u044B\u043C\u044B\u0448\u043B\u0435\u043D\u043D\u044B\u0439 \u0441\u0443\u043F\u0435\u0440\u043C\u0430\u0440\u043A\u0435\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043F\u0440\u043E\u0434\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043A\u043E\u043D\u0441\u0435\u0440\u0432\u044B. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u0439\u0442\u0438 \u044D\u0442\u043E\u0442 \u043F\u0440\u0438\u043C\u0435\u0440 \u0432 \u043F\u0440\u044F\u043C\u043E\u043C \u044D\u0444\u0438\u0440\u0435 \u043D\u0430 GitHub \u0438 \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434.

\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0430 \u0441\u0430\u0439\u0442\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u043F\u0440\u043E\u0434\u0443\u043A\u0442\u044B, \u043D\u043E \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0444\u043E\u0440\u043C\u044B \u0432 \u0441\u0442\u043E\u043B\u0431\u0446\u0435 \u0441\u043B\u0435\u0432\u0430, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u043F\u043E \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043C, \u043F\u043E\u0438\u0441\u043A\u043E\u0432\u043E\u043C\u0443 \u0437\u0430\u043F\u0440\u043E\u0441\u0443 \u0438\u043B\u0438 \u0438 \u0442\u043E\u043C\u0443 \u0438 \u0434\u0440\u0443\u0433\u043E\u043C\u0443.

\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043E\u0432\u043E\u043B\u044C\u043D\u043E \u043C\u043D\u043E\u0433\u043E \u0441\u043B\u043E\u0436\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044E \u043F\u0440\u043E\u0434\u0443\u043A\u0442\u043E\u0432 \u043F\u043E \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043C \u0438 \u043F\u043E\u0438\u0441\u043A\u043E\u0432\u044B\u043C \u0437\u0430\u043F\u0440\u043E\u0441\u0430\u043C, \u043C\u0430\u043D\u0438\u043F\u0443\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438, \u0447\u0442\u043E\u0431\u044B \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u043B\u0438\u0441\u044C \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E \u0432 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u043C \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0438 \u0442.\u0434. \u041C\u044B \u043D\u0435 \u0431\u0443\u0434\u0435\u043C \u043E\u0431\u0441\u0443\u0436\u0434\u0430\u0442\u044C \u0432\u0441\u0435 \u044D\u0442\u043E \u0432 \u0441\u0442\u0430\u0442\u044C\u0435, \u043D\u043E \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u0439\u0442\u0438 \u043E\u0431\u0448\u0438\u0440\u043D\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0432 \u043A\u043E\u0434\u0435 (\u0441\u043C. can-script.js).

\u041E\u0434\u043D\u0430\u043A\u043E \u043C\u044B \u043E\u0431\u044A\u044F\u0441\u043D\u0438\u043C \u043A\u043E\u0434 Fetch.

\u041F\u0435\u0440\u0432\u044B\u0439 \u0431\u043B\u043E\u043A, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 Fetch, \u043C\u043E\u0436\u043D\u043E \u043D\u0430\u0439\u0442\u0438 \u0432 \u043D\u0430\u0447\u0430\u043B\u0435 JavaScript:

\u042D\u0442\u043E \u043F\u043E\u0445\u043E\u0436\u0435 \u043D\u0430 \u0442\u043E, \u0447\u0442\u043E \u043C\u044B \u0432\u0438\u0434\u0435\u043B\u0438 \u0440\u0430\u043D\u044C\u0448\u0435, \u0437\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C \u0442\u043E\u0433\u043E, \u0447\u0442\u043E \u0432\u0442\u043E\u0440\u043E\u0435 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0443\u0441\u043B\u043E\u0432\u043D\u043E\u043C \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0438. \u0412 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u043C\u044B \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u043C, \u0431\u044B\u043B \u043B\u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 \u0443\u0441\u043F\u0435\u0448\u043D\u044B\u043C — \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E <> \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 true , \u0435\u0441\u043B\u0438 \u043E\u0442\u0432\u0435\u0442 \u0431\u044B\u043B \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 200 meaning \\\»OK\\\») \u0438\u043B\u0438 false , \u0435\u0441\u043B\u0438 \u043E\u043D \u043D\u0435 \u0443\u0432\u0435\u043D\u0447\u0430\u043B\u0441\u044F \u0443\u0441\u043F\u0435\u0445\u043E\u043C.

\u0415\u0441\u043B\u0438 \u043E\u0442\u0432\u0435\u0442 \u0431\u044B\u043B \u0443\u0441\u043F\u0435\u0448\u043D\u044B\u043C, \u043C\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u043C \u0432\u0442\u043E\u0440\u043E\u0435 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0435 — \u043D\u0430 \u044D\u0442\u043E\u0442 \u0440\u0430\u0437 \u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C <>, \u0430 \u043D\u0435 <>, \u0442\u0430\u043A \u043A\u0430\u043A \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043D\u0430\u0448 \u043E\u0442\u0432\u0435\u0442 \u043A\u0430\u043A \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 JSON, \u0430 \u043D\u0435 \u043E\u0431\u044B\u0447\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442.

\u0415\u0441\u043B\u0438 \u043E\u0442\u0432\u0435\u0442 \u043D\u0435 \u0443\u0432\u0435\u043D\u0447\u0430\u043B\u0441\u044F \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043C\u044B \u0432\u044B\u0432\u043E\u0434\u0438\u043C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0435 \u0432 \u043A\u043E\u043D\u0441\u043E\u043B\u044C, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u0441\u043E\u043E\u0431\u0449\u0430\u0435\u0442\u0441\u044F \u043E \u0441\u0431\u043E\u0435 \u0441\u0435\u0442\u0435\u0432\u043E\u0433\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0441\u043E\u043E\u0431\u0449\u0430\u0435\u0442 \u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u0441\u0435\u0442\u0438 \u0438 \u043E\u043F\u0438\u0441\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u043C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0438 \u043E\u0442\u0432\u0435\u0442\u0430 (\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u043C\u0441\u044F \u0432 <> \u0438 <>, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E). \u041A\u043E\u043D\u0435\u0447\u043D\u043E, \u043F\u043E\u043B\u043D\u044B\u0439 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 \u0431\u0443\u0434\u0435\u0442 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u044D\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0443 \u0431\u043E\u043B\u0435\u0435 \u0433\u0440\u0430\u0446\u0438\u043E\u0437\u043D\u043E, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043D\u0430 \u044D\u043A\u0440\u0430\u043D\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u043F\u0440\u0435\u0434\u043B\u0430\u0433\u0430\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0434\u043B\u044F \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438.

\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u0441\u0430\u043C \u0441\u043B\u0443\u0447\u0430\u0439 \u043E\u0442\u043A\u0430\u0437\u0430:

\\n\\n

    \\n
  1. \u0421\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0439 \u043A\u043E\u043F\u0438\u0438 \u0444\u0430\u0439\u043B\u043E\u0432 \u043F\u0440\u0438\u043C\u0435\u0440\u043E\u0432 (\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0438 \u0440\u0430\u0441\u043F\u0430\u043A\u043E\u0432\u043A\u0430 the can-store ZIP file) \\n
  2. \u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 \u043A\u043E\u0434 \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 (\u043A\u0430\u043A \u043E\u043F\u0438\u0441\u0430\u043D\u043E \u0432\u044B\u0448\u0435, \u0432 <>) \\n
  3. \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u0435 \u043F\u0443\u0442\u044C \u043A \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u043D\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u00ABproduct.json\u00BB (\u0442.\u0435. \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u043E\u043D \u043D\u0430\u043F\u0438\u0441\u0430\u043D \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E) \\n
  4. \u0422\u0435\u043F\u0435\u0440\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0438\u043D\u0434\u0435\u043A\u0441\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u0432 \u0441\u0432\u043E\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0447\u0435\u0440\u0435\u0437 localhost:8000 ) \u0438 \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0432 \u043A\u043E\u043D\u0441\u043E\u043B\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430. \u0412\u044B \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 \u00AB\u0417\u0430\u043F\u0440\u043E\u0441 \u0441\u0435\u0442\u0438 \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u0443\u043A\u0442\u043E\u0432.json \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441 \u043E\u0442\u0432\u0435\u0442\u043E\u043C 404: \u0424\u0430\u0439\u043B \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u00BB \\n

\\n\\n

\u0412\u0442\u043E\u0440\u043E\u0439 \u0431\u043B\u043E\u043A Fetch \u043C\u043E\u0436\u043D\u043E \u043D\u0430\u0439\u0442\u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 fetchBlob() :

\u042D\u0442\u043E \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0432\u043E \u043C\u043D\u043E\u0433\u043E\u043C \u0442\u0430\u043A \u0436\u0435, \u043A\u0430\u043A \u0438 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439, \u0437\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C \u0442\u043E\u0433\u043E, \u0447\u0442\u043E \u0432\u043C\u0435\u0441\u0442\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F <> \u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C <> — \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u043C\u044B \u0445\u043E\u0442\u0438\u043C \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043D\u0430\u0448 \u043E\u0442\u0432\u0435\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0444\u0430\u0439\u043B\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F, \u0430 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u043D\u043D\u044B\u0445, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E — Blob — \u044D\u0442\u043E\u0442 \u0442\u0435\u0440\u043C\u0438\u043D \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0430\u0431\u0431\u0440\u0435\u0432\u0438\u0430\u0442\u0443\u0440\u043E\u0439 \u043E\u0442\u00AB Binary Large Object \u00BB\u0438 \u043C\u043E\u0436\u0435\u0442 \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442 \u0441\u043E\u0431\u043E\u0439 \u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u044B\u0435 \u043E\u0431\u044A\u0435\u043A\u0442\u044B, \u0442\u0430\u043A\u0438\u0435 \u043A\u0430\u043A \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0438\u043B\u0438 \u0432\u0438\u0434\u0435\u043E\u0444\u0430\u0439\u043B\u044B.

\u041F\u043E\u0441\u043B\u0435 \u0442\u043E\u0433\u043E \u043A\u0430\u043A \u043C\u044B \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u043E\u043B\u0443\u0447\u0438\u043B\u0438 \u043D\u0430\u0448 blob, \u043C\u044B \u0441\u043E\u0437\u0434\u0430\u0435\u043C URL-\u0430\u0434\u0440\u0435\u0441 \u043E\u0431\u044A\u0435\u043A\u0442\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F <>. \u042D\u0442\u043E \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0439 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0439 URL-\u0430\u0434\u0440\u0435\u0441, \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0438\u0439 \u043D\u0430 \u043E\u0431\u044A\u0435\u043A\u0442, \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0439 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435. \u041E\u043D\u0438 \u043D\u0435 \u043E\u0447\u0435\u043D\u044C \u0447\u0438\u0442\u0430\u0435\u043C\u044B, \u043D\u043E \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044C, \u043A\u0430\u043A \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442, \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u044F \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 Can Store, Ctrl-/\u0449\u0435\u043B\u043A\u043D\u0443\u0442\u044C \u043F\u0440\u0430\u0432\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u043E\u0439 \u043C\u044B\u0448\u0438 \u043F\u043E \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044E \u0438 \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u043E\u043F\u0446\u0438\u044E \u00AB\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u00BB (\u043A\u043E\u0442\u043E\u0440\u0430\u044F \u043C\u043E\u0436\u0435\u0442 \u043D\u0435\u043C\u043D\u043E\u0433\u043E \u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u043E\u0442 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A\u043E\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0432\u044B ). URL-\u0430\u0434\u0440\u0435\u0441 \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 \u0430\u0434\u0440\u0435\u0441\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0438 \u0434\u043E\u043B\u0436\u0435\u043D \u0432\u044B\u0433\u043B\u044F\u0434\u0435\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0440\u043D\u043E \u0442\u0430\u043A:

\u0412\u044B\u0437\u043E\u0432: XHR \u0432\u0435\u0440\u0441\u0438\u044F the Can Store

\u041C\u044B \u0445\u043E\u0442\u0435\u043B\u0438 \u0431\u044B, \u0447\u0442\u043E\u0431\u044B \u0432\u044B \u0440\u0435\u0448\u0438\u043B\u0438 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0432\u0435\u0440\u0441\u0438\u044E \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F Fetch \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F XHR \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u043E\u043B\u0435\u0437\u043D\u043E\u0439 \u0447\u0430\u0441\u0442\u0438 \u043F\u0440\u0430\u043A\u0442\u0438\u043A\u0438. \u0412\u043E\u0437\u044C\u043C\u0438\u0442\u0435 \u043A\u043E\u043F\u0438\u044E ZIP \u0444\u0430\u0439\u043B\u0430 \u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C JavaScript, \u0435\u0441\u043B\u0438 \u044D\u0442\u043E \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E.

\u041D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043F\u043E\u043B\u0435\u0437\u043D\u044B\u0435 \u0441\u043E\u0432\u0435\u0442\u044B:

\\n\\n

    \\n
  • \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u043B\u0435\u0437\u043D\u044B\u0439 \u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u044B\u0439 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B <>. \\n
  • \u0412\u0430\u043C \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C \u043D\u0443\u0436\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0442\u043E\u0442 \u0436\u0435 \u0448\u0430\u0431\u043B\u043E\u043D, \u0447\u0442\u043E \u0438 \u0440\u0430\u043D\u044C\u0448\u0435, \u0432 \u043F\u0440\u0438\u043C\u0435\u0440\u0435 XHR-basic.html. \\n
  • \u041E\u0434\u043D\u0430\u043A\u043E \u0432\u0430\u043C \u043D\u0443\u0436\u043D\u043E \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043E\u0448\u0438\u0431\u043E\u043A, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043C\u044B \u043F\u043E\u043A\u0430\u0437\u0430\u043B\u0438 \u0432\u0430\u043C \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 Fetch Can Store:\\n
      \\n
    • \u041E\u0442\u0432\u0435\u0442 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 request.response \u043F\u043E\u0441\u043B\u0435 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A \u0441\u043E\u0431\u044B\u0442\u0438\u0435 load \u0437\u0430\u043F\u0443\u0449\u0435\u043D\u043E, \u0430 \u043D\u0435 \u0432 \u043E\u0431\u0435\u0449\u0430\u043D\u0438\u0438 then() . \\n
    • \u041E \u043D\u0430\u0438\u043B\u0443\u0447\u0448\u0435\u043C \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442\u0435 Fetch’s response.ok \u0432 XHR \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C, \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 <> \u0440\u0430\u0432\u043D\u044B\u043C 200 \u0438\u043B\u0438 \u0435\u0441\u043B\u0438 <> \u0440\u0430\u0432\u043D\u043E 4. \\n
    • \u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F \u043E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u044B, \u043D\u043E \u043E\u043D\u0438 \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u043D\u0430 \u043E\u0431\u044A\u0435\u043A\u0442\u0435 request (XHR), \u0430 \u043D\u0435 \u0432 \u043E\u0431\u044A\u0435\u043A\u0442\u0435 response . \\n

    \\n \\n

\\n\\n

\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0415\u0441\u043B\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044C \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B \u0441 \u044D\u0442\u0438\u043C, \u043D\u0435 \u0441\u0442\u0435\u0441\u043D\u044F\u0439\u0442\u0435\u0441\u044C \u0441\u0440\u0430\u0432\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0439 \u043A\u043E\u0434 \u0441 \u0433\u043E\u0442\u043E\u0432\u043E\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043D\u0430 GitHub (\u0441\u043C. \u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A \u0437\u0434\u0435\u0441\u044C, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0441\u043C. \u044D\u0442\u043E \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438).

\u0420\u0435\u0437\u044E\u043C\u0435

\u042D\u0442\u043E \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u043D\u0430\u0448\u0443 \u0441\u0442\u0430\u0442\u044C\u044E \u043F\u043E \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u044E \u0434\u0430\u043D\u043D\u044B\u0445 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041A \u044D\u0442\u043E\u043C\u0443 \u043C\u043E\u043C\u0435\u043D\u0442\u0443 \u0432\u044B \u0434\u043E\u043B\u0436\u043D\u044B \u0438\u043C\u0435\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043E \u0442\u043E\u043C, \u043A\u0430\u043A \u043D\u0430\u0447\u0430\u0442\u044C \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u043A\u0430\u043A \u0441 XHR, \u0442\u0430\u043A \u0438 \u0441 Fetch.

\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0442\u0430\u043A\u0436\u0435

\u041E\u0434\u043D\u0430\u043A\u043E \u0432 \u044D\u0442\u043E\u0439 \u0441\u0442\u0430\u0442\u044C\u0435 \u043E\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044F \u043C\u043D\u043E\u0433\u043E \u0440\u0430\u0437\u043D\u044B\u0445 \u0442\u0435\u043C, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0446\u0430\u0440\u0430\u043F\u0430\u043B\u0438 \u043F\u043E\u0432\u0435\u0440\u0445\u043D\u043E\u0441\u0442\u044C. \u0414\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0431\u043E\u043B\u0435\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 \u043F\u043E \u044D\u0442\u0438\u043C \u0442\u0435\u043C\u0430\u043C, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044C\u0438:

Цукерберг рекомендует:  5 лучших CSS-фреймворков для верстальщиков и веб-мастеров
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих