AJAX
AJAX (Asynchronous Javascript And XML) — технология обращения к серверу без перезагрузки страницы.
Уменьшение времени отклика, создание интерактивных веб-интерфейсов.
Формат пересылаемых данных
- JSON — простой и «легкий» формат, хорошо подходит для обработки в JavaScript
- XML — универсальный язык разметки документов
- HTML/текст
- двоичные данные
Реализация AJAX
XMLHttpRequest — объект JavaScript, предоставляющий API для реализации AJAX
var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://localhost/ajax.php', false); xhr.send(); if (xhr.status == 200) { alert( xhr.responseText ); } else { alert( 'Ошибка ' + xhr.status + ' - ' + xhr.statusText ); }
var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://localhost/ajax.php', true); xhr.send(); xhr.onreadystatechange = function() { if (this.readyState != 4) return; if (this.status != 200) { alert( 'Ошибка ' + this.status + ' - ' + this.statusText ); return; } alert( xhr.responseText ); }
Подробнее — http://learn.javascript.ru/ajax-intro
WebSocket
Режим двусторонней связи между браузером и веб-сервером в режиме реального времени.
Технология (кратко):
1. Клиент (браузер) обращается к серверу, устанавливает долговременное WebSocket-соединение
2. Сервер по своей инициативе по установленному соединению может отправлять клиенту сообщения
3. Клиент, получая сообщение, обрабатывает его по событию
Где применяется — всплывающие сообщения в социальных сетях, системы мгновенных сообщений, совместное редактирование документов и др.
Node.js
Node.js — программная платформа, позволяющая создавать гибридные веб-приложения полностью на JavaScript.
Node.js не требует специального программного обеспечения веб-сервера. Эту роль выполняют сами приложения Node.js.
const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain; charset=UTF-8' }); res.end('Hello world!'); }); server.listen(8000, 'localhost');
Подробнее — http://learn.javascript.ru/nodejs-screencast
Алексей Н. Сергеев