22 Прикладные интерфейсы HTML5

We use cookies. Read the Privacy and Cookie Policy

Под термином HTML5 обычно подразумевается последняя версия спецификации языка разметки HTML, но этот термин также используется для обозначения целого комплекса веб-технологий, которые разрабатываются и определяются как часть языка разметки HTML или сопутствующие ему. Официально этот комплекс технологий называется «Open Web Platform». Однако на практике чаще используется сокращенное название «HTML5», и в данной главе мы будем использовать его именно в этом смысле. В других главах этой книги уже описывались некоторые новые прикладные интерфейсы HTML5:

• В главе 15 были представлены методы getElementsByClassName(), querySelectorAll() и атрибуты данных элементов документа.

• В главе 16 было описано свойство classList элементов.

• В главе 18 рассказывалось о спецификации «XMLHttpRequest Level 2», о выполнении междоменных HTTP-запросов и о прикладном интерфейсе EventSource, определяемом спецификацией «Server-Sent Events».

• В главе 20 был описан прикладной интерфейс WebStorage и кэш приложений для автономных веб-приложений.

• В главе 21 были представлены элементы <audio>, <video> и <canvas>, а также средства для работы с векторной графикой SVG.

Эта глава охватывает ряд других прикладных интерфейсов HTML5:

• В разделе 22.1 рассматривается прикладной интерфейс объекта Geolocation, позволяющий броузерам определять географическое местонахождение пользователя (с его разрешения).

• В разделе 22.2 рассказывается о прикладных интерфейсах управления историей посещений, которые позволяют веб-приложениям сохранять и обновлять информацию о своем состоянии в ответ на использование кнопок Back (Назад) и Forward (Вперед) броузера, без необходимости выполнять полную перезагрузку страницы с веб-сервера.

• В разделе 22.3 описывается простой прикладной интерфейс передачи сообщений между документами с различным происхождением. Он обеспечивает безопасный способ обхода ограничений политики общего происхождения (раздел 13.6.2), препятствующих непосредственному взаимодействию документов, полученных от разных веб-серверов.

• В разделе 22.4 охватывается новая важная особенность HTML5: возможность выполнять программный код на языке JavaScript в отдельном фоновом потоке выполнения и безопасно взаимодействовать с этими «рабочими» потоками.

• В разделе 22.5 рассматриваются специальные типы данных для работы с массивами байтов и чисел, более экономно расходующие память.

• В разделе 22.6 будут представлены двоичные объекты (Blob): нетипизированные порции данных, которые служат основным форматом обмена данными, используемым различными новыми прикладными интерфейсами для работы с двоичными данными. В этом разделе также охватывается несколько типов данных, связанных с большими двоичными объектами, и их прикладные интерфейсы: объекты File и FileReader, тип BlobBuilder и URL-адреса вида blob://.

• В разделе 22.7 демонстрируется прикладной интерфейс к файловой системе, посредством которого веб-приложения могут читать и писать файлы в частной файловой системе. Это один из пока не устоявшихся прикладных интерфейсов, и он не описывается в справочном разделе книги.

• В разделе 22.8 демонстрируется прикладной интерфейс объекта IndexedDB, предназначенный для сохранения и извлечения объектов в простых базах данных. Как и интерфейс к файловой системе, прикладной интерфейс IndexedDB пока является нестабильным и не описывается в справочном разделе.

• Наконец, раздел 22.9 охватывает прикладной интерфейс веб-сокетов Web Sockets, позволяющий веб-приложениям устанавливать соединения с веб-серверами и использовать двунаправленные сетевые каналы на основе потоков вместо модели сетевых взаимодействий типа запрос/ответ, поддерживаемой с помощью объекта XMLHttpRequest.

Особенности, описываемые в этой главе, либо не укладываются естественным образом ни в одну из тем, обсуждавшихся в предыдущих главах, либо пока не являются достаточно стабильными и зрелыми, чтобы обсуждать их в основных главах этой книги. Некоторые из прикладных интерфейсов выглядят достаточно стабильными, чтобы их можно было описать в справочном разделе, тогда как другие все еще продолжают изменяться и потому не были включены в четвертую часть книги. На тот момент, когда книга была отправлена в печать, все примеры в этой главе, кроме одного (пример 22.9), работали, по крайней мере, в одном из броузеров. Поскольку спецификации, описываемые здесь, все еще продолжают дорабатываться, некоторые из этих примеров могут перестать работать, когда вы будете читать эту главу.