Сетевые взаимодействия по своей природе являются асинхронными, и, подобно объекту
XMLHttpRequest
, объект
WebSocket
также опирается на использование событий. Он определяет четыре свойства регистрации обработчиков событий, а также реализует интерфейс
EventTarget
, благодаря чему обработчики событий можно также регистрировать с помощью методов интерфейса
EventTarget
. Все события, описываемые ниже, возбуждаются в объекте
WebSocket
. Ни одно из них не всплывает, и ни для одного из них не предусмотрено действий
по умолчанию, которые можно было бы отменить. Отметьте, однако, что им передаются различные объекты событий.
onclose
Событие «close» генерируется после закрытия соединения (и свойство
readyState
получит значение CLOSED). Обработчику события передается объект
CloseEvent
, который определяет, было соединение закрыто без ошибок или нет.
onerror
Событие «error» генерируется, когда возникает сетевая ошибка или ошибка протокола веб-сокетов. Обработчику события передается обычный объект
Event
onmessage
Когда сервер отправляет данные через веб-сокет, объект
WebSocket
возбуждает событие «message» и передает обработчику объект
MessageEvent
, свойство
data
которого ссылается на принятое сообщение.
onopen
Конструктор
WebSocket
возвращает управление еще до того, как будет установлено соединение с адресом url. Когда процедура установления соединения завершится и объект
WebSocket
будет готов к отправке и приему данных, будет возбуждено событие «open». Обработчику события передается обычный объект
Event
.
Window
окно, вкладка или фрейм веб-броузера (EventTarget)
Объект
Window
представляет окно, вкладку или фрейм в броузере. Он подробно описан в главе 14. В клиентском JavaScript-коде объект
Window
выступает в качестве «глобального» объекта, и все выражения вычисляются в контексте текущего объекта
Window
. Это значит, что для обращения к текущему окну не требуется использовать специальный синтаксис и свойства этого объекта можно использовать, как если бы они были глобальными переменными. Например, вместо
window.document
можно писать
Document
. Аналогично можно вызывать методы текущего объекта окна, как если бы они были функциями, например
alert
вместо
window.alert.
Некоторые свойства и методы этого объекта фактически позволяют определять и изменять некоторые параметры окна броузера. Другие включены в этот объект просто потому, что он является глобальным объектом. Помимо перечисленных здесь свойств и методов объект
Window
реализует все глобальные функции, определяемые базовым языком JavaScript. Подробности см. в справочной статье Global в третьей части книги. Веб-броузеры возбуждают в окнах множество различных событий. Это означает, что объект
Window
определяет массу обработчиков событий и что объекты
Window
реализуют методы интерфейса
EventTarget
.
В объекте
Window
имеются свойства
window
и
self
, которые ссылаются на само окно. Они позволяют явно задать ссылку на окно.
Объект
Window
может содержать другие объекты
Window
, обычно в виде тегов
<iframe>
. Каждый объект
Window
является объектом, подобным массиву, содержащим вложенные объекты
Window
. Однако вместо непосредственного индексирования объекта
Window
на практике обычно используется свойство frames, ссылающееся на сам объект, как если бы это был объект, подобный массиву. Свойства
parent
и
top
объекта
Window
ссылаются непосредственно на родительское окно и на окно верхнего уровня.
Новые окна верхнего уровня создаются вызовом метода
Window.ореп.
При вызове этого метода можно сохранить возвращаемое им значение в переменной и затем использовать эту переменную для ссылки на новое окно. Свойство
opener
нового окна будет ссылаться на окно, открывшее его.
Свойства
В дополнение к свойствам, перечисленным ниже, содержимое документа, отображаемого в окне, создает новые свойства. Как описывается в разделе 14.7, на элемент документа можно сослаться, использовав значение его атрибута
id
в качестве имени свойства окна (а поскольку его окно является глобальным объектом, его свойства являются глобальными переменными).
readonly ApplicationCache applicationCache
Ссылка на объект
ApplicationCache
. Кэшируемые и автономные веб-приложения могут использовать это свойство для управления обновлением своего кэша.
readonly any dialogArguments
В объектах
Window
, созданных методом
showModalDialog,
это свойство хранит значение аргумента
arguments
, переданного методу
ShowModalDialog.
В обычных объектах
Window
это свойство отсутствует. Подробнее см. в разделе 14.5.
readonly Document document
Ссылка на объект
Document
, который описывает документ, содержащийся в этом окне (подробности см. в справочной статье Document).
readonly Event event [только в IE]
В Internet Explorer это свойство ссылается на объект
Event
, содержащий сведения о самом последнем произошедшем в окне событии. В IE версии 8 и ниже объект события не всегда передается обработчикам событий, и поэтому иногда его приходится извлекать из этого свойства. Дополнительные сведения приводятся в главе 17.
readonly Element frameElement
Если данный объект
Window
находится внутри элемента
<iframe>
, это свойство будет ссылаться на представляющий его объект
IFrame
. В окнах верхнего уровня это свойство имеет значение null.
readonly Window frames
Подобно свойствам
self
и
window
, это свойство ссылается на сам объект
Window
. Все объекты
Window
являются объектами, подобными массивам, содержащими фреймы, имеющиеся в данном окне. Вместо ссылки w[0] на первый фрейм в окне w это свойство позволяет использовать более очевидную форму записи w.frames[0].