Объект Self

  Self - Является интерфейсом к пространству скрипта.
  Если скрипт запущен элементом тега SCRIPT, то объект Self полностью идентичен объекту Window соответствующего окна или фрейма.

  Если скрипт запущен методом Worker или методом SharedWorker, то он работает асинхронно в фоновом режиме, и ему не доступны интерфейсы DOM Window и HTMLDocument (соответственно нет возможности получить экземпляры большинства HTML- объектов и объектов технологий).
  В этом случае объект Self предоставляет такому скрипу некоторые доступные интерфейсы.

  В любом случае Self - глобальный объект, следовательно, собственные его свойства и методы - суть переменные с зарезервированными именами и встроенные функции для скрипта этого пространства, к которым он может обращаться без ссылки на экземпляр объекта Self.
  Здесь приведено только описание свойств и методов объекта Self доступных скриптам, работающим в фоновом режиме.
  Надо иметь в виду, что если пространство, указанное экземпляром объекта Self, является окном, то некоторые свойства и методы экземпляра объекта Self будут иметь иной функционал.
  Экземпляр доступен:

  Свойства.
  applicationCache - Содержит ссылку на интерфейс ApplicationCache для приложений доступных в этом пространстве.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]applicationCache

Значения формата записи:

  indexedDB - Содержит ссылку на интерфейс IDBFactory.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]indexedDB

Значения формата записи:

  location - Содержит ссылку на интерфейс Location и адрес документа, который находится в окне, создавшем самый первый объект Worker для этого пространства.
  Методы экземпляра объекта Location в скрипте, запущенным в фоновом режиме, не работают, а его свойства доступны таким скриптам только для чтения.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]location

Значения формата записи:

  name - Содержит имя этого пространства.
  Значение имеет строковый формат.
  Имя пространства может быть назначено при создании этого пространства.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]name

Значения формата записи:

  navigator - Содержит ссылку на интерфейс Navigator.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]navigator

Значения формата записи:

  onconnect - Содержит функцию, которая должна быть вызвана, если к пространству подключился какой-либо процесс.
  Это свойство имеет смысл только для пространства общего работника.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]onconnect[ = Функция]

Значения формата записи:

  onmessage - Содержит функцию, которая должна быть вызвана, если пространство получило сообщение от своего создателя.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]onmessage[ = Функция]

Значения формата записи:

  openDatabase - Создает и(или) открывает так называемую Web SQL базу данных, и создает экземпляр объекта Database - интерфейс к ней.
  Возвращает ссылку на этот экземпляр объекта Database.
  Web SQL база данных создается на клиентском устройстве, что, в принципе, может не очень одобряться его владельцем.
  Поэтому метод openDatabase, в основном, применяется при использовании Web-технологий в локальных сетях.
  Web SQL и соответствующие интерфейсы не специфицированы HTML5, однако могут поддерживаться браузерами.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]openDatabase(Имя БД, Версия БД, Дескриптор БД, Размер БД[, Функция])

Значения формата записи:

  performance - Содержит ссылку на интерфейс Performance.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]performance

Значения формата записи:

  self - Содержит ссылку на интерфейс Self к этому пространству.
  Это по существу зарезервированная переменная с текущим значением экземпляра объекта Self.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]self

Значения формата записи:

  Методы.
  addEventListener - Устанавливает функцию обработчик событий для пространства.
  Возвращает значение undefined.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]addEventListener(Событие, Функция, false)

Значения формата записи:

  clearInterval - Останавливает процесс запущенный методом setInterval.
  Возвращает значение undefined.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]clearInterval(Идентификатор)

Значения формата записи:

  clearTimeout - Останавливает процесс запущенный методом setTimeout.
  Возвращает значение undefined.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]clearTimeout(Идентификатор)

Значения формата записи:

  close - Безусловно останавливает скрипт, запущенный в этом пространстве, и закрывает пространство.
  Возвращает значение undefined.
  Если пространство, указанное экземпляром объекта Self, является окном, то у метода close совсем иной функционал.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]close()

Значения формата записи:

  dispatchEvent - Инициализирует возникновение заданного события в этом пространстве.
  Возвращает значение undefined.
  Инициализированное событие не происходит на самом деле, но инициализация приводит к вызову его обработчика.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]dispatchEvent(Событие)

Значения формата записи:

  Event - Функция конструктор событий.
  Создает в памяти и возвращает ссылку на экземпляр объекта Event допустимого события.
  Для возникновения этого события необходимо его инициализировать.

Формат записи в коде скрипта:

  • new Event([Событие])

Значения формата записи:

  fetch - Инициирует "обещание" запроса доступа к заданному ресурсу.
  Возвращает ссылку на соответствующий интерфейс Promise.
  Если "обещание" будет выполнено, то оно возвратит ссылку на интерфейс Response к "ответу" на запрос доступа к ресурсу.
  Методом fetch можно запросить ресурс от серверного скрипта (например, скрипта PHP), который динамически сформирует требуемый ресурс, и может вернуть его.
  (Например, скрипт PHP, при обращении к нему с помощью fetch, передаст данные оператором echo не на Web-страницу, а как ресурс, доступ к которому можно получить с помощью соответствующего интерфейса Response, то есть данные непосредственно доступные клиентскому скрипту JavaScript.)

  Таким образом, метод fetch позволяет использовать Web-сервер только как сервер базы данных (без непосредственного изменения контента Web-страницы серверными скриптами).

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]fetch(URL|Запрос[, Опции])

Значения формата записи:

  • Экземпляр объекта Self - Любой операнд значения со значением экземпляра объекта Self.
  • . - Оператор доступа к методу объекта.
  • fetch - Ключевое слово.
  • ( - Оператор группировки. Ключевое слово в этом формате.
  • URL - URL-адрес ресурса заданный в любом строковом формате.
  • Запрос - Любой операнд значения со значением экземпляра объекта Request - интерфейса к соответствующему запросу ресурса.
      Запрос настоятельно рекомендуется использовать вместо URL, поскольку развитие технологии, связанной с fetch, может исключить применение URL в этом аргументе метода.
  • , - Оператор группировки. Ключевое слово в этом формате.
  • Опции - Набор опций заданный в любом формате экземпляра объекта.
      Этот экземпляр объекта должен иметь следующие свойства:
    • method – Метод запроса.
        Одно из строковых значений:
      • get - Запрос без передачи информации в запросе (умолчание).
      • post - Запрос с передачей информации в запросе.
    • headers – Заголовки запроса.
        Значение - соответствующий экземпляр объекта Headers, или строка.
        Для post в заголовке надо указать Content-type тела body, который должен совпасть с серверными настройками.
        Например headers: {"Content-type": "application/x-www-form-urlencoded; charset=UTF-8" }.
    • body – Тело запроса.
        Только для post.
        Одно из значений:
      • Соответствующий экземпляр объекта Blob.
      • Соответствующий экземпляр BufferSource.
      • Соответствующий экземпляр объекта FormData.
      • Соответствующий экземпляр объекта URLSearchParams.
      • Строка.
    • mode – Режим кроссдоменности запроса.
        Одно из строковых значений:
      • same-origin. - Этот запрос может быть успешно выполнен только если он сделан на ресурс находящийся в рамках той же самой Web-страницы что и документ, создавший этот запрос (origin).
      • cors - Этот запрос может быть успешно выполнен, даже если он кроссдоменный, но при условии, что на него будут получены и CORS заголовки.
      • no-cors - Этот запрос всегда будет возвращать type = opaque.
    • credentials – Отправлять или нет учетные данные (кукисы) с запросом (для post).
        Одно из строковых значений:
      • omit - Не отправлять в любом случае (умолчание).
      • same-origin - Отправлять только в этом домене.
      • include - Пытаться отправлять всегда, даже для кроссдоменного запроса.
    • cache – Режим использования запросом кэш-памяти браузера по протоколу http.
        Одно из строковых значений:
      • default - Браузер должен искать запрошенный ресурс в кэше http.
        • При наличии в кзше нового запрошенного ресурса, он будет взят из кэша.
        • При наличии в кзше не нового запрошенного ресурса, браузер сделает этот запрос на соответствующий ресурс. Если обнаружится, что этот ресурс не был изменен, он будет взят из кэша. В противном случае браузер сделает попытку загрузить запрошенный ресурс в кэш и возьмёт его оттуда.
        • При отсутствии в кзше запрошенного ресурса, браузер сделает попытку загрузить запрошенный ресурс в кэш и возьмёт его оттуда.
      • no-store - Браузер всегда будет делать попытку получить запрошенный ресурс без проверки кэша, и не будет обновлять кэш http.
      • reload - Браузер всегда будет делать попытку получить запрошенный ресурс без проверки кэша, одновременно обновляя кэш http если ресурс будет получен.
      • no-cache - Браузер должен искать соответствующий ресурс в кэше http.
        • При наличии в кзше запрошенного ресурса, браузер сделает этот запрос на соответствующий ресурс. Если обнаружится, что этот ресурс не был изменен, он будет взят из кэша. В противном случае браузер сделает попытку загрузить запрошенный ресурс в кэш и возьмёт его оттуда.
        • При отсутствии в кзше запрошенного ресурса, браузер сделает попытку загрузить запрошенный ресурс в кэш и возьмёт его оттуда.
      • force-cache - Браузер должен искать запрошенный ресурс в кэше http.
        • При наличии в кзше запрошенного ресурса, браузер возьмёт его из кэша.
        • При отсутствии в кзше запрошенного ресурса, браузер сделает попытку загрузить запрошенный ресурс в кэш и вернёт его оттуда.
      • only-if-cached - Браузер должен искать запрошенный ресурс в кэше http.
        • При наличии в кзше запрошенного ресурса, браузер возьмёт его из кэша.
        • При отсутствии в кзше запрошенного ресурса, браузер выдаст ошибку.
          only-if-cached можно использовать только при запросе same-origin. Кроссдоменность должна соблюдаться и в случае редиректа.
    • redirect – Условие перенаправления запроса.
        Одно из строковых значений:
      • follow - При коде - 30x выполнять редирект (умолчание).
      • error - Интерпретировать код - 30x как ошибку.
  • ) - Оператор группировки. Ключевое слово в этом формате.
  Пример работы метода fetch ■■■■■■■■■■►
  importScripts - Загружает и выполняет заданный скрипт или скрипты в этом пространстве.
  Возвращает значение undefined.
  Поскольку загрузка и выполнение происходят синхронно с работой скрипта вызвавшего метод, то можно считать, что коды загруженных скриптов просто встраиваются в код вызвавшего.
  Поэтому, в частности, переменные, объявленные в вызвавшем скрипте, доступны в вызванных.

  Методом importScripts также можно подключать и внешние библиотеки.

  Однако всегда необходимо помнить об ограничениях связанных с генезисом вызываемых скриптов.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]importScripts([Адрес скрипта1[, ...Адрес скриптаN]])

Значения формата записи:

  Notification - Функция конструктор Web-уведомлений.
  Создаёт уведомление на экране устройства пользователя, и возвращает соответствующий экземпляр объекта Notification.

Формат записи в коде скрипта:

  • new Notification(Заголовок[, Опции])

Значения формата записи:

  PerformanceObserver - Функция конструктор "наблюдателя" за буфером браузера для наблюдений.
  Создает в памяти экземпляр объекта PerformanceObserver, ссылку на который и возвращает.

Формат записи в коде скрипта:

  • new PerformanceObserver(Функция)

Значения формата записи:

  postMessage - Передает сообщение из пространства, указанного экземпляром объекта Self, создателю этого пространства.
  Возвращает значение undefined.
  Соответственно у потенциального получателя возникнет событие message.
  Если пространство, указанное экземпляром объекта Self, является окном, то у метода postMessage совсем иной функцирнал.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]postMessage(Сообщение)

Значения формата записи:

  removeEventListener - Отменяет функцию обработчик событий, установленную методом addEventListener.
  Возвращает значение undefined.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]removeEventListener(Событие, Функция, false)

Значения формата записи:

  Request - Функция конструктор объектов Request.
  Создает в памяти экземпляр объекта Request, ссылку на который и возвращает.

Формат записи в коде скрипта:

  • new Request(URL|Запрос[, Опции])

Значения формата записи:

  • new - Ключевое слово.
  • Request - Ключевое слово.
  • URL - URL-адрес ресурса, заданный в любом строковом формате.
  • Запрос - Любой операнд значения со значением экземпляра объекта Request - интерфейса к запросу ресурса, по шаблону которого создаётся новый запрос.
  • , - Оператор группировки. Ключевое слово в этом формате.
  • Опции - Набор опций заданный в любом формате экземпляра объекта.
      Этот экземпляр объекта должен иметь следующие свойства:
    • methodМетод запроса.
        Одно из значений:
      • get - Запрос без передачи параметров в запросе (умолчание).
      • post - Запрос с передачей параметров в запросе.
    • headers – Заголовки запроса (для post).
        Значение - соответствующий экземпляр объекта Headers, или строка.
    • body – Тело запроса (для post).
        Одно из значений:
      • Соответствующий экземпляр объекта Blob.
      • Соответствующий экземпляр BufferSource.
      • Соответствующий экземпляр объекта FormData.
      • Соответствующий экземпляр объекта URLSearchParams.
      • Строка.
    • mode – Режим кроссдоменности запроса.
        Одно из значений:
      • same-origin. - Этот запрос может быть успешно выполнен только если он сделан на ресурс находящийся в рамках той же самой Web-страницы что и документ, создавший этот запрос (origin.
      • cors - Этот запрос может быть успешно выполне, даже если он кроссдоменный, но при условии, что на него будут получены CORS заголовки.
      • no-cors Этот запрос всегда будет возвращать type = opaque.
    • credentials – Запрос учетных данных (кукисов текущего домена и заголовков авторизации).
        Одно из значений:
      • omit - Не включать (умолчание).
      • same-origin - Включать только в этом домене.
      • include - Пытаться включать всегда.
    • cache – Режим использования кэш-памяти для запроса.
        Одно из значений:
    • redirect – Условие перенаправления запроса.
        Одно из значений:
      • follow (при коде 30x выполнять редирект - умолчание).
      • error (интерпретировать код 30x как ошибку).
  Response - Функция конструктор объектов Response.
  Создает в памяти экземпляр объекта Response, ссылку на который и возвращает.

Формат записи в коде скрипта:

  • new Response([Шаблон][, Опции])

Значения формата записи:

  • new - Ключевое слово.
  • Response - Ключевое слово.
  • ( - Оператор группировки. Ключевое слово в этом формате.
  • Шаблон - Шаблон, по которому будет создано тело ресурса для этого экземпляра объекта Response.
      Значением может быть строка, экземпляр объекта Blob, экземпляр объекта ArrayBuffer, экземпляр объекта FormData, экземпляр объекта BufferSource, экземпляр объекта URLSearchParams.
  • , - Оператор группировки. Ключевое слово в этом формате.
  • Опции - Набор опций заданный в любом формате экземпляра объекта.
      Этот объект должен иметь следующие свойства:
    • status – Задаёт значение свойства status.
    • statusText – Задаёт значение свойства statusText.
    • headers – Задаёт значение свойства headers.
  • ) - Оператор группировки. Ключевое слово в этом формате.

  setInterval - Инициирует периодический вызов заданной функции через заданный интервал времени.
  Возвращает числовое значение своего идентификатора.
  Отменить такой вызов можно методом clearInterval.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]setInterval(функция, Интервал, Аргументы)

Значения формата записи:

  setTimeout - Инициирует однократный вызов заданной функции через заданный интервал времени.
  Возвращает числовое значение своего идентификатора.
  Отменить такой вызов, если он ещё не произошёл, можно методом clearTimeout.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]setTimeout(функция, Интервал, Аргументы)

Значения формата записи:

  speechSynthesis - Содержит ссылку на интерфейс SpeechSynthesis.

Формат записи в коде скрипта:

  • [Экземпляр объекта Self.]speechSynthesis

Значения формата записи:

  WebSocket - Функция конструктор WebSocket-подключений.
  Создает в памяти экземпляр объекта WebSocket, ссылку на который и возвращает.
  Одновременно инициализирует WebSocket-подключение.


Формат записи в коде скрипта:

  • new WebSocket(Адрес[, Протоколы])

Значения формата записи:

  • new - Ключевое слово.
  • WebSocket - Ключевое слово.
  • ( - Оператор группировки. Ключевое слово в этом формате.
  • Адрес - URI адрес Web-сервера, к которому необходимо подключиться, заданный в любом строковом формате.
      В этом адресе, вместо протокола http(https) должен быть указан протокол ws(wss) по той же схеме:
      ws: // хост [: порт] путь [? запрос] (по умолчанию- порт 80)
      wss: // хост [: порт] путь [? запрос] (по умолчанию- порт 443)
  • , - Оператор группировки. Ключевое слово в этом формате.
  • Протоколы - Массив названий субпротоколов для WebSocket-подключения.
      Названия субпротоколов задаются в любом строковом формате и должны соответствовать реестру IANA.
      В сущности сам субпротокол является строкой символов ASCII, которая обеспечивает взаимопонимание данных Web-страницы и Web-сервера в этом соединении.
      Сервер выберет наиболее совместимый протокол.
      Название выбранного протокола будет находиться в значении свойства protocol соответствующего экземпляра объекта WebSocket.
  • ) - Оператор группировки. Ключевое слово в этом формате.

  Worker - Функция конструктор фоновых задач.
  Создает в памяти пространство и запускает в нем заданный скрипт.
  Возвращает ссылку на экземпляр объекта Worker (субобъект этого Self пространства).
  В отличие от самого первого объекта Worker, для субобъектов существуют некоторые особенности:
  1. Скрипты субобъектов должны находится в пределах папки (в ней или глубже) с документом, который создал самый первый объект Worker.
  2. URI используемые в скриптах субобъектов (в отличие от корневой страницы) базируются от URI скрипта, который создал самый первый объект Worker.
  Большинство браузеров создают отдельные процессы для каждого экземпляра объекта Worker, поэтому, при создании субобъектов, необходима тщательная логическая проработка этих процессов. В противном случае можно сильно замедлить работу соответствующих скриптов.

Формат записи в коде скрипта:

  • new Worker(Адрес скрипта)

Значения формата записи: