22.6.2. Загрузка двоичных объектов
Глава 18 охватывает тему выполнения HTTP-запросов с помощью объекта XMLHttpRequest и также описывает некоторые новые возможности, определяемые проектом спецификации «XMLHttpRequest Level 2» (XHR2). На момент написания этих строк спецификация XHR2 определяла способ загрузки содержимого URL-адреса в виде двоичного объекта, но реализации броузеров пока не поддерживали его. Поскольку программный код не может быть протестирован, этот раздел является лишь схематическим описанием прикладного интерфейса, предусматриваемого спецификацией XHR2 для работы с двоичными объектами.
Пример 22.9 демонстрирует простой способ загрузки двоичного объекта из Веб. Сравните его с примером 18.2, который загружает содержимое URL-адреса как простой текст.
Пример 22.9, Загрузка двоичного объекта с помощью объекта XMLHttpRequest
// Запрашивает методом GET содержимое URL в виде двоичного объекта и передает его
// указанной функции обратного вызова. Этот программный код не тестировался: на тот
// момент, когда он был написан, броузеры еще не поддерживали этот прикладной интерфейс,
function getBlob(url, callback) {
var xhr = new XMLHttpRequest(); // Создать новый объект XHR
xhr.open("GET", url); // Указать URL-адрес
xhr.responseType = "blob" // Желательно получить двоичный объект
xhr.onload = function() { // onload проще, чем onreadystatechange
callback(xhr.response): // Передать ответ функции обратного вызова
} // Отметьте: .response, а не .responseText
xhr.send(null); // Послать запрос
}
Если загружаемый двоичный объект слишком велик и вам хотелось бы начать его обработку уже в процессе загрузки, можно задействовать обработчик события onprogress в комплексе с приемами чтения двоичных объектов, которые демонстрируются в разделе 22.6.5.
Больше книг — больше знаний!
Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ