Введение
Ajax (также AJAX '/eɪ//dʒ//æ//k//s/; сокращение от "Asynchronous JavaScript and XML" или "Асинхронный перенос JavaScript (x fer)") – это совокупность веб-технологий, используемых на стороне клиента для создания асинхронных веб-приложений. С помощью Ajax веб-приложения могут асинхронно (в фоновом режиме) отправлять и получать данные с сервера, не прерывая отображение и поведение текущей страницы. Отделяя слой обмена данными от слоя представления, Ajax позволяет веб-страницам и, соответственно, веб-приложениям динамически изменять содержимое без перезагрузки всей страницы. В современных реализациях чаще всего используется JSON вместо XML. Ajax – это не технология, а концепция программирования. HTML и CSS используются совместно для разметки и стилизации информации. JavaScript позволяет изменять веб-страницу для динамического отображения и обеспечения взаимодействия пользователя с новой информацией. Для реализации Ajax на веб-страницах используется встроенный объект XMLHttpRequest, позволяющий веб-сайтам загружать контент на экран без обновления страницы. Ajax не является новой технологией или новым языком программирования, а представляет собой использование существующих технологий новым способом.
Ajax (also AJAX '/eɪ//dʒ//æ//k//s/; short for "Asynchronous JavaScript and XML" or "Asynchronous JavaScript transfer (x fer)") is a set of web development techniques that uses various web technologies on the client side to create asynchronous web applications. With Ajax, web applications can send and retrieve data from a server asynchronously (in the background) without interfering with the display and behaviour of the existing page. By decoupling the data interchange layer from the presentation layer, Ajax allows web pages and, by extension, web applications, to change content dynamically without the need to reload the entire page. In practice, modern implementations commonly utilize JSON instead of XML. Ajax is not a technology, but rather a programming concept. HTML and CSS can be used in combination to mark up and style information. The webpage can be modified by JavaScript to dynamically display—and allow the user to interact with the new information. The built in XMLHttpRequest object is used to execute Ajax on webpages, allowing websites to load content onto the screen without refreshing the page. Ajax is not a new technology, nor is it a new language. Instead, it is existing technologies used in a new way.
История
В начале и середине 1990-х годов большинство веб-сайтов были основаны на полных HTML-страницах. Каждое действие пользователя требовало загрузки новой страницы с сервера. Этот процесс был неэффективным, что отражалось на пользовательском опыте: всё содержимое страницы исчезало, а затем появлялась новая. Каждый раз, когда браузер перезагружал страницу из-за частичного изменения, всё содержимое должно было быть повторно отправлено, даже если изменилась лишь часть информации. Это создавало дополнительную нагрузку на сервер и делало пропускную способность ограничивающим фактором производительности. В 1996 году Internet Explorer представил тег `iframe`, позволяющий асинхронно загружать часть веб-страницы. В 1998 году команда Microsoft Outlook Web Access разработала концепцию скриптового объекта XMLHttpRequest. Он впервые появился как XMLHTTP во второй версии библиотеки MSXML, выпущенной вместе с Internet Explorer 5.0 в марте 1999 года. Функциональность Windows XMLHTTP ActiveX в IE 5 впоследствии была реализована Mozilla Firefox, Safari, Opera, Google Chrome и другими браузерами в виде JavaScript-объекта XMLHttpRequest. Microsoft перешла на нативную модель XMLHttpRequest с Internet Explorer 7. Версия ActiveX по-прежнему поддерживается в Internet Explorer, но не в Microsoft Edge. Практическая ценность этих фоновых HTTP-запросов и асинхронных веб-технологий оставалась малозаметной, пока они не стали использоваться в крупных онлайн-приложениях, таких как Outlook Web Access (2000) и Oddpost (2002). Google широко внедрил Ajax, соответствующий стандартам, в Gmail (2004) и Google Maps (2005). В октябре 2004 года публичная бета-версия Kayak.com стала одним из первых крупных примеров использования в электронной коммерции того, что разработчики в то время называли «xml http вещью». Это вызвало повышенный интерес к Ajax среди веб-разработчиков. Термин AJAX был публично использован 18 февраля 2005 года Джесси Джеймсом Гарреттом в статье под названием «Ajax: Новый подход к веб-приложениям», основанной на технологиях, использованных на страницах Google. 5 апреля 2006 года World Wide Web Consortium (W3C) опубликовал первый проект спецификации для объекта XMLHttpRequest в попытке создать официальный веб-стандарт. Последний проект спецификации объекта XMLHttpRequest был опубликован 6 октября 2016 года, и спецификация XMLHttpRequest теперь является «живым стандартом».
Технологии
Термин Ajax стал обозначать широкую группу веб-технологий, которые можно использовать для создания веб-приложения, осуществляющего связь с сервером в фоновом режиме, не прерывая текущее состояние страницы. В статье, которая впервые ввела термин Ajax, упоминалось, что также могут использоваться и другие форматы, такие как предварительно отформатированный HTML или обычный текст. Многие популярные библиотеки JavaScript, включая JQuery, предоставляют абстракции для упрощения выполнения Ajax-запросов.
Пример поиска
Fetch — это встроенный JavaScript API. Согласно документации Google Developers, "Fetch упрощает выполнение веб-запросов и обработку ответов по сравнению со старым XMLHttpRequest". fetch('send ajax data.php')
.then(data => console.log(data))
.catch(error => console.log('Ошибка: ' + error));
then(data => console. log(data))
catch (error => console. log('Error:' + error));
Преимущества
Ajax предлагает несколько преимуществ, которые могут значительно улучшить производительность веб-приложений и пользовательский опыт. Уменьшая нагрузку на сервер и повышая скорость работы, Ajax играет ключевую роль в современной веб-разработке. Одно из главных преимуществ Ajax – это возможность отображать веб-приложения без необходимости повторной загрузки данных, что снижает трафик сервера. Эта оптимизация минимизирует время отклика как на стороне сервера, так и на стороне клиента, избавляя пользователей от необходимости ждать загрузки страниц. Более того, Ajax упрощает асинхронную обработку, облегчая использование XmlHttpRequest, что позволяет эффективно обрабатывать запросы на асинхронное получение данных. Дополнительно, динамическая загрузка контента значительно повышает производительность приложения. Помимо этого, Ajax широко поддерживается всеми основными веб-браузерами, включая Microsoft Internet Explorer версии 5 и выше, Mozilla Firefox версии 1.0 и выше, Opera версии 7.6 и выше, и Apple Safari версии 1.2 и выше.