114 lines
5.2 KiB
Markdown
114 lines
5.2 KiB
Markdown
|
---
|
|||
|
title: AJAX
|
|||
|
localeTitle: AJAX
|
|||
|
---
|
|||
|
## AJAX
|
|||
|
|
|||
|
**AJAX** означает **асинхронный JavaScript и XML** . Это не язык программирования. Это технология для разработки лучших, быстрых и интерактивных веб-приложений с использованием HTML, CSS, JavaScript и XML.
|
|||
|
|
|||
|
1. HTML: язык гипертекстовой разметки (HTML) используется для определения структуры веб-приложения.
|
|||
|
2. CSS: Каскадная таблица стилей (CSS) используется для обеспечения внешнего вида и стиля веб-приложения.
|
|||
|
3. JavaScript: JavaScript используется для создания интерактивного, интересного и удобного веб-приложения.
|
|||
|
4. XML: расширяемый язык разметки (XML) - это формат для хранения и переноса данных с веб-сервера.
|
|||
|
|
|||
|
#### В чем смысл асинхронного в AJAX?
|
|||
|
|
|||
|
Асинхронный означает, что веб-приложение может отправлять и получать данные с веб-сервера без обновления страницы. Этот фоновый процесс отправки и получения данных с сервера наряду с обновлением различных разделов веб-страницы определяет асинхронное свойство / функцию AJAX.
|
|||
|
|
|||
|
#### Как работает **AJAX** ?
|
|||
|
|
|||
|
AJAX использует встроенный **объект XMLHttpRequest браузера** для запроса данных с веб-сервера и **HTML DOM** для отображения или использования данных.
|
|||
|
|
|||
|
**Объект XMLHttpRequest** : это API в форме объекта, методы которого помогают в передаче данных между веб-браузером и веб-сервером.
|
|||
|
|
|||
|
**HTML DOM** : при загрузке веб-страницы браузер создает объектную модель документа на странице.
|
|||
|
|
|||
|
![](https://i.imgur.com/pfC7QFH.png "Как работает AJAX")
|
|||
|
|
|||
|
**Создайте объект XMLHttpRequest:**
|
|||
|
|
|||
|
```javascript
|
|||
|
var xhttp = new XMLHttpRequest();
|
|||
|
```
|
|||
|
|
|||
|
**Свойства объекта XMLHttpRequest:**
|
|||
|
|
|||
|
`readystate` является свойством объекта XMLHttpRequest, который содержит статус XMLHttpRequest.
|
|||
|
|
|||
|
* 0: запрос не инициализирован
|
|||
|
* 1: установлено соединение с сервером
|
|||
|
* 2: получен запрос
|
|||
|
* 3: запрос обработки
|
|||
|
* 4: запрос завершен, и ответ готов
|
|||
|
|
|||
|
`onreadystatechange` является свойством объекта XMLHttpRequest, который определяет функцию, вызываемую при изменении свойства readyState.
|
|||
|
|
|||
|
`status` является свойством объекта XMLHttpRequest, который возвращает номер статуса запроса
|
|||
|
|
|||
|
* 200: «ОК»
|
|||
|
* 403: «Запрещено»
|
|||
|
* 404 Не Найдено"
|
|||
|
|
|||
|
**Методы объекта XMLHttpRequest:** Чтобы отправить запрос на веб-сервер, мы используем методы open () и send () объекта XMLHttpRequest.
|
|||
|
|
|||
|
```javascript
|
|||
|
xhttp.open("GET", "content.txt", true);
|
|||
|
xhttp.send();
|
|||
|
```
|
|||
|
|
|||
|
**Создайте функцию changeContent (), используя JavaScript:**
|
|||
|
|
|||
|
```javascript
|
|||
|
function changeContent() {
|
|||
|
var xhttp = new XMLHttpRequest();
|
|||
|
xhttp.onreadystatechange = function() {
|
|||
|
if (this.readyState == 4 && this.status == 200) {
|
|||
|
document.getElementById("foo").innerHTML = this.responseText;
|
|||
|
}
|
|||
|
};
|
|||
|
xhttp.open("GET", "content.txt", true);
|
|||
|
xhttp.send();
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
**Пример AJAX для изменения содержимого веб-страницы:**
|
|||
|
|
|||
|
```HTML
|
|||
|
<!DOCTYPE html>
|
|||
|
<html>
|
|||
|
<body>
|
|||
|
|
|||
|
<div id="foo">
|
|||
|
<h2>The XMLHttpRequest Object</h2>
|
|||
|
<button type="button" onclick="changeContent()">Change Content</button>
|
|||
|
</div>
|
|||
|
|
|||
|
<script>
|
|||
|
function changeContent() {
|
|||
|
var xhttp = new XMLHttpRequest();
|
|||
|
xhttp.onreadystatechange = function() {
|
|||
|
if (this.readyState == 4 && this.status == 200) {
|
|||
|
document.getElementById("foo").innerHTML =
|
|||
|
this.responseText;
|
|||
|
}
|
|||
|
};
|
|||
|
xhttp.open("GET", "content.txt", true);
|
|||
|
xhttp.send();
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
Файл `content.txt` должен присутствовать в корневом каталоге веб-приложения.
|
|||
|
|
|||
|
### источники
|
|||
|
|
|||
|
* [W3Schools](https://www.w3schools.com/js/js_ajax_intro.asp)
|
|||
|
* [Веб-документы MDN](https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started)
|
|||
|
|
|||
|
### Другие источники
|
|||
|
|
|||
|
* [W3Schools](https://www.w3schools.com/js/js_ajax_intro.asp)
|
|||
|
* [Веб-документы MDN](https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started)
|