Различия

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


Предыдущая версия
ajax [2025/07/06 12:38] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Что такое AJAX и как он работает в JavaScript ======
 +~~Title: AJAX: основы, принципы работы и примеры для веб-разработки ~~
 +{{htmlmetatags>
 +metatag-description=(В статье рассмотрены принципы AJAX, использование XMLHttpRequest, JSON, а также современные методы работы с асинхронным кодом на JavaScript с помощью async/await и Promise. Практические примеры для начинающих.)
 +}}
  
 +
 +**AJAX** (от англ. Asynchronous Javascript and XML — «асинхронный [[JavaScript|JavaScript]] и [[XML|XML]]»)(по-английски произносится как эй-джэкс, по-русски довольно распространено аякс). Для многих объект [[XMLHttpRequest|XMLHttpRequest]] и Ajax являются синонимами.
 +
 +AJAX – не самостоятельная технология, а концепция использования нескольких смежных технологий. В технологии AJAX построена на двух принципах:
 +  * использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью с использованием [[XMLHttpRequest]]
 +  * использование DHTML для динамического изменения содержания страницы;
 +В качестве формата передачи данных обычно используются [[JSON]] или [[XML]].
 +
 +Читайте также:
 +  * [[XMLHttpRequest]]
 +  * [[JSON]]
 +  * [[jquery?&#jquery_ajax|jQuery AJAX]]
 +  * [[php#php_i_javascript|PHP и JavaScript]]
 +  * [[fetch_api]]
 +===== async...await =====
 +async...await является синтаксическим сахаром над Promise, что делает код асинхронного JavaScript более понятным и удобным для написания. Ключевое слово async указывает, что функция возвращает Promise, а await используется для ожидания выполнения Promise и его результата.
 +
 +<panel type="info">Promise (https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise) – это объект, представляющий результат или ошибку асинхронной операции и позволяющий вам работать с результатом асинхронного запроса в последующее время. Используя Promise, можно сделать код более читабельным и управляемым, особенно когда есть несколько асинхронных операций.</panel>
 +
 +Ключевое слово async используется для определения функции, возвращающей обещание (Promise). Функция, которая имеет async перед своей декларацией, автоматически возвращает Promise.
 +
 +<file javascript>
 +async function fetchData() { 
 +return 'Data fetched!';
 +}
 +</file>
 +
 +Оператор await работает только в пределах async функций. Он приостанавливает выполнение функции до тех пор, пока переданное обещание не будет выполнено или отклонено, и возвращает его результат.
 +
 +Вот пример с промисом, выполняемым за 1 секунду:
 +<file javascript>
 +async function testPromise() { 
 +
 +let promise = new Promise((resolve, reject) => { 
 +setTimeout(() => resolve("готово!"), 1000) 
 +}); 
 +
 +let result = await promise; // будет ждать, пока промес не выполнится (*) 
 +
 +alert(result); // "готово!"
 +}
 +
 +testPromise();
 +</file>
 +
 +Выполнение функции "приостанавливается" в строке (*) и восстанавливается, когда промес выполнится, а результатом становится result.
 +
 +Подчеркнем: await буквально приостанавливает выполнение функции до тех пор, пока промес не выполнится, а затем восстанавливает ее с результатом промеса.
 +
 +Это просто более элегантный синтаксис получения результата промиса, чем promise.then. В частности, так это легче читать и писать.
 +
 +Эти технологии вместе создают мощный механизм для взаимодействия с сервером и обработки асинхронного кода в обозревателе. Они делают веб-разработку более эффективной, динамичной и легко понятной программистам.

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!