Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

// Функция обработки ответа после начала его получения

request.on("response", function(response) {

// Указать кодировку, чтобы тело возвращалось как строка, а не байты

response.setEncoding("utf8");

// Для сохранения тела ответа по мере получения

var body =
response.on("data", function(chunk) { body += chunk; });

// По окончании тела ответа вызвать функцию обратного вызова

response.on("end", function { if (callback)

callback(response.statusCode, response.headers, body);

));

});

};

// Простой HTTP POST-запрос с данными в теле запроса

exports.post = function(url, data, callback) {

// Разобрать URL и получить необходимые фрагменты

url = requiге('url').parse(url);

var hostname = url.hostname, port = url.port || 80;

var path = url.pathname, query = url.query;

if (query) path += "?" + query;

// Определить тип данных, отправляемых в теле запроса var type;

if (data == null) data = "";

if (data instanceof Buffer) // Двоичные данные

type = "application/octet-stream";

else if (typeof data === "string”) // Строковые данные

type = "text/plain; charset=UTF-8";

else if (typeof data === "object") { // Пары имя/значение

data = require("querystring").stringify(data);

type = "application/x-www-form-urlencoded";

}

// Выполнить POST-запрос и отправить тело запроса

var client = require("http").createClient(port, hostname);

var request = client.request("POST", path, {

"Host": hostname,

"Content-Type": type

}):

request.write(data); // Отправить тело запроса

request.end;

request.on("response", function(response) { // Обработать ответ

response.setEncoding("utf8"); // Предполагается текст

var body = "" // Для хранения тела ответа

response.on("data", function(chunk) { body += chunk; });

response.on("end", function { // По завершении вызвать обработчик

if (callback)

callback(response.statusCode, response.headers, body);

});

});

II

Клиентский JavaScript

В данной части книги в главах с 13 по 22 язык JavaScript описан в том виде, в котором он реализован в веб-броузерах. В этих главах вводится много новых JavaScript-объектов, представляющих окна, документы и содержимое документов в веб-броузерах. В них также описываются важные прикладные интерфейсы для организации сетевых взаимодействий, сохранения и извлечения данных и рисования графических изображений в веб-приложениях.

• Глава 13 «JavaScript в веб-броузерах»

• Глава 14 «Объект Window»

• Глава 15 «Работа с документами»

• Глава 16 «Каскадные таблицы стилей»

• Глава 17 «Обработка событий»

• Глава 18 «Работа с протоколом HTTP»

• Глава 19 «Библиотека jQuery»

• Глава 20 «Сохранение данных на стороне клиента»

• Глава 21 «Работа с графикой и медиафайлами на стороне клиента»

• Глава 22 «Прикладные интерфейсы HTML5»

13 JavaScript в веб-броузерах

Первая часть этой книги была посвящена базовому языку JavaScript. Теперь мы перейдем к тому языку JavaScript, который используется в веб-броузерах и обычно называется клиентским JavaScript (client-side JavaScript). Большинство примеров, которые мы видели до сих пор, будучи корректным JavaScript-кодом, не зависели от какого-либо контекста; это были JavaScript-фрагменты, не ориентированные на запуск в какой-либо определенной среде. Эта глава описывает такой контекст.

До обсуждения JavaScript давайте поближе познакомимся с веб-страницами, отображаемыми в веб-броузерах. Некоторые страницы представляют статическую информацию; их можно называть документами. (Представление такой статической информации может быть дополнено динамическим поведением с помощью JavaScript, но сама по себе информация остается статической.) Другие страницы больше похожи на приложения, чем на документы. Эти страницы способны динамически загружать новую информацию по мере необходимости, они могут состоять преимущественно из графических изображений, могут действовать без подключения к серверу, сохранять данные локально и, как следствие, способны восстанавливать свое состояние при повторном посещении. Имеются также вебстраницы, которые занимают промежуточное положение и объединяют в себе особенности документов и приложений.

Поделиться:
Популярные книги

Путь

Yagger Егор
Фантастика:
космическая фантастика
4.25
рейтинг книги
Путь

Неучтенный элемент. Том 8

NikL
8. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 8

Прапорщик. Назад в СССР. Книга 6

Гаусс Максим
6. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 6

Хозяин Теней 2

Петров Максим Николаевич
2. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 2

Пересмешник

Пехов Алексей Юрьевич
Фантастика:
фэнтези
9.38
рейтинг книги
Пересмешник

Тьма чернее ночи

Коннелли Майкл
7. Гарри Босх
Детективы:
триллеры
7.64
рейтинг книги
Тьма чернее ночи

Последний Паладин. Том 12

Саваровский Роман
12. Путь Паладина
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Последний Паладин. Том 12

Твое сердце будет разбито. Книга 1

Джейн Анна
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Твое сердце будет разбито. Книга 1

Меткий стрелок

Вязовский Алексей
1. Меткий стрелок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Меткий стрелок

Лекарь Империи 6

Карелин Сергей Витальевич
6. Лекарь Империи
Фантастика:
городское фэнтези
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 6

Эпоха Опустошителя. Том VIII

Павлов Вел
8. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том VIII

Я до сих пор князь. Книга XXII

Дрейк Сириус
22. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор князь. Книга XXII

Государь

Кулаков Алексей Иванович
3. Рюрикова кровь
Фантастика:
мистика
альтернативная история
историческое фэнтези
6.25
рейтинг книги
Государь

Камень. Книга 4

Минин Станислав
4. Камень
Фантастика:
боевая фантастика
7.77
рейтинг книги
Камень. Книга 4