recursal/MDN huggingface dataset:
ANGLE\_instanced\_arrays
========================

Расширение **ANGLE\_instanced\_arrays** является частью API WebGL и позволяет рисовать один и тот же объект или группы похожих объектов несколько раз, если они используют одни и те же данные вершин, количество примитивов и тип.

Доступ к WebGL расширениям можно получить с помощью метода `WebGLRenderingContext.getExtension()` (en-US). Для получения дополнительной информации см. также в Использование расширений (en-US) в WebGL руководстве.

**Примечание:** Это расширение доступно только для WebGL1 контекстов. В WebGL2 (en-US), функциональность этого расширения доступна в контексте WebGL2 по умолчанию, а константы и методы доступны без суффикса " `ANGLE` ".

Несмотря на название "ANGLE", это расширение работает на любом устройстве, если аппаратное обеспечение поддерживает его, а не только на Windows при использовании библиотеки ANGLE . "ANGLE" просто указывает, что это расширение было написано авторами библиотеки ANGLE.

Константы
---------

Это расширение предоставляет одну новую константу, которую можно использовать в `gl.getVertexAttrib()` (en-US) методе:

`ext.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE`

Возвращает `GLint` (en-US) , описывающий частотный делитель, используемый для упомянутого перевода в `gl.getVertexAttrib()` (en-US) в качестве параметра `pname`.

Методы
------

Это расширение предоставляет три новых метода:

`ext.drawArraysInstancedANGLE()` (en-US)

Behaves identically to `gl.drawArrays()` (en-US) except that multiple instances of the range of elements are executed, and the instance advances for each iteration.

`ext.drawElementsInstancedANGLE()` (en-US)

Ведёт себя идентично `gl.drawElements()` (en-US) за исключением того, что выполняется несколько экземпляров набора элементов и экземпляр перемещается между каждым набором

`ext.vertexAttribDivisorANGLE()` (en-US)

Изменяет скорость продвижения общих атрибутов вершин при визуализации нескольких экземпляров примитивов с помощью `ext.drawArraysInstancedANGLE()` (en-US) и `ext.drawElementsInstancedANGLE()` (en-US).

Примеры
-------

Включение расширения:


```js
var ext = gl.getExtension("ANGLE\_instanced\_arrays");
```

Спецификации
------------

| Specification |
| --- |
| WebGL ANGLE\_instanced\_arrays Khronos Ratified Extension Specification  |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `WebGLRenderingContext.getExtension()` (en-US)
* `WebGL2RenderingContext.drawArraysInstanced()` (en-US)
* `WebGL2RenderingContext.drawElementsInstanced()` (en-US)
* `WebGL2RenderingContext.vertexAttribDivisor()` (en-US)
Screen
======

Интерфейс `Screen` представляет экран, обычно отображающий текущее окно, его можно получить с помощью `window.screen`.

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

Свойства экземпляра
-------------------

*Также наследует свойства от своего родительского объекта `EventTarget`*.

`Screen.availHeight` (en-US)

Возвращает высоту экрана в пикселях за исключением постоянных или «полупостоянных» элементов пользовательского интерфейса, отображаемых операционной системой, таких как панель задач в Windows.

`Screen.availWidth` (en-US)

Возвращает размер доступного окну горизонтального пространства в пикселях.

`Screen.colorDepth` (en-US)

Возвращает глубину цвета экрана.

`Screen.height` (en-US)

Возвращает высоту экрана в пикселях.

`Screen.isExtended` (en-US) 
Экспериментальная возможность
 Secure context

Возвращает `true` если устройство пользователя имеет несколько экранов и `false` в противном случае.

`Screen.orientation` (en-US)

Возвращает экземпляр `ScreenOrientation` (en-US) связанный с экраном.

`Screen.pixelDepth` (en-US)

Возвращает количество битов информации на один пиксель экрана.

`Screen.width` (en-US)

Возвращает ширину экрана.

`Screen.mozEnabled` (en-US) 
Non-standard

Устарело

Значение типа `Boolean`. Установка в `false` отключает экран.

`Screen.mozBrightness` (en-US) 
Non-standard

Устарело

Управляет яркостью экрана. Ожидается значение в диапазоне от 0 до 1.0.

Методы экземпляра
-----------------

*Также наследует методы от своего родительского объекта `EventTarget`*.

`Screen.lockOrientation` (en-US) 
Устарело

Блокирует ориентацию экрана (доступно только в полноэкранном режиме или для установленных приложений)

`Screen.unlockOrientation` (en-US) 
Устарело

Разблокирует ориентацию экрана (доступно только в полноэкранном режиме или для установленных приложений)

### События

`change` (en-US) 
Экспериментальная возможность
 Secure context

Возникает, когда происходит изменение экрана — его ширины или высоты, доступной ширины или высоты, глубины цвета или ориентации.

`orientationchange` (en-US) 
Устарело

Non-standard

Возникает, когда происходит изменение ориентации экрана.

Примеры
-------


```js
if (screen.colorDepth < 8) {
  // использовать версию страницы с неполным количеством цветов
} else {
  // использовать обычную полноцветную версию страницу
}
```

Спецификации
------------

| Specification |
| --- |
| CSSOM View Module # the-screen-interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
History API
===========


 DOM-объект `Window` предоставляет доступ к истории текущей сессии браузера (не путать с историей браузерных расширений (en-US)) через объект `history`. Он предоставляет полезные методы и свойства, которые позволяют переходить назад и вперёд по истории пользователя и манипулировать её содержимым.
Понятия и использование
-----------------------

Перемещение назад и вперёд по истории пользователя выполняется с помощью методов `back()` (en-US), `forward()` (en-US), и `go()`.

### Перемещение вперёд и назад

Чтобы переместиться назад по истории:


```js
window.history.back();
```


 Данный метод работает так, будто пользователь нажал на кнопку "Назад" на панели браузера.
 Похожим образом можно переместиться вперёд (как если бы пользователь нажал на кнопку "Вперёд"):


```js
window.history.forward();
```

### Перемещение к определённой странице в истории

Вы можете использовать метод `go()` для загрузки конкретной страницы из истории сессии, определяемой её позицией относительно текущей страницы. Относительная позиция текущей страницы равняется `0`.

Вернуться на одну страницу назад (равноценно вызову `back()` (en-US)):


```js
window.history.go(-1);
```


Перейти на одну страницу вперёд (равноценно вызову `forward()` (en-US))


```js
window.history.go(1);
```


По такому же принципу, можно перемещаться вперёд на 2 страницы, передавая аргумент `2`, и так далее.

Кроме того, метод `go()` можно использовать для обновления текущей страницы, передавая аргумент `0` или вызывая его без аргументов:
```

// Обе следующих инструкции обновляют текущую страницу
window.history.go(0)
window.history.go()
```


Узнать количество страниц, которые находятся в стеке истории, можно, получив значение свойства `length`:


```js
var numberOfEntries = window.history.length;
```

Интерфейсы
----------

`History`

Позволяет манипулировать историей сессии браузера (то есть, страницами, посещёнными в той же закладке, что и текущая страница.

Примеры
-------

В следующем примере свойству `onpopstate` назначается обработчик. А затем приводятся некоторые методы объекта истории для добавления, замены и перемещения по истории текущей вкладки браузера
```

window.onpopstate = function(event) {
  alert(`location: ${document.location}, state: ${JSON.stringify(event.state)}`)
}

history.pushState({page: 1}, "title 1", "?page=1")
history.pushState({page: 2}, "title 2", "?page=2")
history.replaceState({page: 3}, "title 3", "?page=3")
history.back() // alerts "location: http://example.com/example.html?page=1, state: {"page":1}"
history.back() // alerts "location: http://example.com/example.html, state: null"
history.go(2)  // alerts "location: http://example.com/example.html?page=3, state: {"page":3}"
```

Спецификации
------------

| Specification |
| --- |
| HTML Standard # the-history-interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

### Справочники

* `window.history`
* `window.onpopstate` (en-US)
### Руководства

* Working with the History API
GamepadButton
=============

Интерфейс **`GamepadButton`** определяет отдельную кнопку геймпада или другого контроллера, позволяя получить доступ к текущему состоянию различных типов кнопок, доступных на устройстве
Объект **`GamepadButton`** возвращается путём получения любого элемента в массиве `buttons`, который является свойством интерфейса `Gamepad`.

**Примечание:** Это работает только в Firefox Gecko 28 и выше; Chrome и более ранние версии Firefox по-прежнему возвращают массив чисел с плавающей точкой

Свойства
--------

`GamepadButton.value` Только для чтения 

Значение с плавающей точкой, указывающее на текущее состояние аналоговых кнопок, таких как триггеры на многих современных геймпадах. Значение нормализованное к диапазону 0.0-1.0, где 0.0 означает, что клавиша не нажата совсем, 1.0 - нажата полностью.

`GamepadButton.pressed` Только для чтения 

Значение `Boolean` (en-US) указывает, нажата ли кнопка (`true`) или не нажата (`false`).

Пример
------

Приведённый код взят из моего *(автора статьи)* демо Gamepad API button (вы можете Посмотреть демо, и посмотреть исходники на GitHub). Важно — в Chrome `Navigator.getGamepads` необходимо установить префикс `webkit`, и значения кнопки будут представлять из себя массив дробных чисел, тогда как в Firefox `Navigator.getGamepads` нет необходимости устанавливать префикс, и значения будут представлять собой массив объектов `GamepadButton`; Свойство `GamepadButton.value` или `GamepadButton.pressed` необходимо для получения состояния кнопки, в зависимости от от типа кнопки. В данном простом примере обрабатывается оба вида кнопок.


```js
function gameLoop() {
  if (navigator.webkitGetGamepads) {
    var gp = navigator.webkitGetGamepads()[0];

    if (gp.buttons[0] == 1) {
      b--;
    } else if (gp.buttons[1] == 1) {
      a++;
    } else if (gp.buttons[2] == 1) {
      b++;
    } else if (gp.buttons[3] == 1) {
      a--;
    }
  } else {
    var gp = navigator.getGamepads()[0];

    if (gp.buttons[0].value > 0 || gp.buttons[0].pressed == true) {
      b--;
    } else if (gp.buttons[1].value > 0 || gp.buttons[1].pressed == true) {
      a++;
    } else if (gp.buttons[2].value > 0 || gp.buttons[2].pressed == true) {
      b++;
    } else if (gp.buttons[3].value > 0 || gp.buttons[3].pressed == true) {
      a--;
    }
  }

  ball.style.left = a \* 2 + "px";
  ball.style.top = b \* 2 + "px";

  var start = window.requestAnimationFrame(gameLoop);
}
```

Спецификации
------------

| Specification |
| --- |
| Gamepad # gamepadbutton-interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

Using the Gamepad API (en-US)
Sensor
======

Интерфейс **`Sensor`** Sensor APIs это базовый класс для всех интерфейсов датчиков. Этот интерфейс нельзя использовать напрямую. Вместо этого он предоставляет свойства, обработчики событий и методы, к которым обращаются интерфейсы, которые наследуются от него.

Если функциональная политика блокирует использование функции, то это происходит потому, что ваш код не соответствует политикам, установленным на вашем сервере. Это не то, что когда-либо будет показано пользователю. Статья о HTTP заголовке `Feature-Policy` (en-US) содержит инструкцию по реализации.

EventTarget

Sensor
Сразу после того, как объект `Sensor` создан он находится в *покое*, что значит, что датчик не принимает никаких показаний. Как только был вызван метод `start()`, датчик начинает готовить себя к приёму показаний, а когда будет готов отправит событие `activate` и станет *активным*. Затем датчик отправляем событие `reading` каждый раз, когда данные готовы для считывания.

 В случае ошибки отправляется событие `error`, считывание останавливается и объект `Sensor` снова переходит в состояние *покоя*.
 Чтобы продолжить читать данные нужно снова вызвать метод `start()`.

Интерфейсы унаследованные от `Sensor`
-------------------------------------

Ниже представлен список интерфейсов, унаследованных от `Sensor`.

* `Accelerometer` (en-US)
* `AmbientLightSensor` (en-US)
* `GravitySensor` (en-US)
* `Gyroscope`
* `LinearAccelerationSensor` (en-US)
* `Magnetometer` (en-US)
* `OrientationSensor` (en-US)
Свойства
--------

`Sensor.activated` Только для чтения 

Возвращает boolean значение, определяющее в активном ли состоянии находится датчик.

`Sensor.hasReading` Только для чтения 

Возвращает boolean значение, определяющее считывает ли датчик показания.

`Sensor.timestamp` Только для чтения 

Возвращает время последнего считывания данных.

Методы
------

`Sensor.start()`

Активирует один из датчиков, наследованных от `Sensor`.

`Sensor.stop()`

Деактивирует один из датчиков, наследованных от `Sensor`.

События
-------

`activate`

Срабатывает, когда датчик переходит в активное состояние.

`error`

Срабатывает, когда происходит ошибка во время работы датчика.

`reading`

Срабатывает, когда доступно считываение новых данных.

Спецификации
------------

| Specification |
| --- |
| Generic Sensor API # the-sensor-interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
HTMLHeadElement
===============

Интерфейс **`HTMLHeadElement`** содержит описательную информацию, или метаданные, для документа. Этот объект наследует все свойства и методы описанные в `HTMLElement` интерфейсе.

Свойства
--------

*Наследует свойства от родителя, `HTMLElement`.*

`HTMLHeadElement.profile`

Это `DOMString` представляющая URI одного или более профилей метаданных (через запятую).

Методы
------

*Не имеет специфичных методов; наследует методы от родителя, `HTMLElement`.*

Спецификации
------------

| Specification |
| --- |
| HTML Standard # htmlheadelement |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* HTML-элемент реализующий этот интерфейс: `<head>`
BluetoothRemoteGATTServer
=========================

**Экспериментальная возможность:** **Это экспериментальная технология**  
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Интерфейс **`BluetoothRemoteGATTServer`**, относящийся к Web Bluetooth API (en-US), представляет сервер GATT на удалённом устройстве.

**Примечание:** Данная страница описывает Web Bluetooth API от W3C Community Group. `BluetoothGattServer` (Firefox OS) - Bluetooth API в Firefox OS.

Интерфейс
---------
```

interface BluetoothRemoteGATTServer {
  readonly attribute BluetoothDevice device;
  readonly attribute boolean connected;

  Promise<BluetoothRemoteGATTServer> connect();
  void disconnect();
  Promise<BluetoothRemoteGATTService> getPrimaryService(BluetoothServiceUUID service);
  Promise<sequence<BluetoothRemoteGATTService>> getPrimaryServices(optional BluetoothServiceUUID service);
};
```

Свойства
--------

`BluetoothRemoteGATTServer.connected` (en-US)Только для чтения 

Двоичное значение, равное `true`, если устройство `this.device` подключено. It can be false while the user agent is physically connected.

`BluetoothRemoteGATTServer.device` (en-US)Только для чтения 

`BluetoothDevice` (en-US), на котором работает сервер.

Методы
------

`BluetoothRemoteGATTServer.connect()` (en-US)

Подключение к устройству `this.device`.

`BluetoothRemoteGATTServer.disconnect()` (en-US)

Отключение от устройства `this.device`.

`BluetoothRemoteGATTServer.getPrimaryService()` (en-US)

Returns a promise to the primary `BluetoothGATTService` (en-US) offered by the bluetooth device for a specified `BluetoothServiceUUID`.

`BluetoothRemoteGATTServer.getPrimaryServices()` (en-US)

Returns a promise to a list of primary `BluetoothGATTService` (en-US) objects offered by the bluetooth device for a specified `BluetoothServiceUUID`.

Спецификации
------------

| Specification |
| --- |
| Web Bluetooth # bluetoothgattremoteserver-interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Gamepad
=======

Интерфейс **`Gamepad`** Gamepad API определяет отдельный геймпад или контроллер, предоставляющий доступ к такой информации, как: нажатие кнопок, позиции осей, и id.

Объект `Gamepad` может быть возвращён в одном из двух случаев: как свойство `gamepad` событий `gamepadconnected (en-US)` и `gamepaddisconnected (en-US)`, или считыванием любой позиции в массиве, возвращённом методом `Navigator.getGamepads()`.

Свойства
--------

`Gamepad.displayId` Только для чтения 

*Возвращает `VRDisplay.displayId` (en-US) связанный с `VRDisplay` (en-US) (при необходимости) — `VRDisplay` отображаемая область которого управляется геймпадом.*

`Gamepad.id` Только для чтения 

`DOMString` содержит идентификационную информацию о контроллере.

`Gamepad.index` Только для чтения 

Целое автоинкрементируемое значение, уникальное для каждого устройства, подключённого в данный момент к системе.

`Gamepad.mapping` Только для чтения 

Строка, указывающая, переназначил ли браузер элементы управления устройства на уже известный шаблон.

`Gamepad.connected` Только для чтения 

Логическое свойство показывающее, подключён ли геймпад к системе в данный момент.

`Gamepad.buttons` Только для чтения 

Массив объектов `gamepadButton` представляющих кнопки устройства.

`Gamepad.axes` Только для чтения 

Массив, представляющий элементы управления осями устройства (например, аналоговые стики).

`Gamepad.timestamp` Только для чтения 

`DOMHighResTimeStamp` представляет время последнего обновления данных геймпада.

### Экспериментальные расширения для Gamepad

Следующие интерфейсы определены в спецификации Gamepad Extensions, и предоставляют доступ к экспериментальным возможностям, таким как тактильная обратная связь (haptic feedback) и информация о положении WebVR контроллера.

`Gamepad.hand` (en-US) Только для чтения 

Перечисляемое значение, которое определяет в какой руке находится контроллер.

`Gamepad.hapticActuators` (en-US) Только для чтения 

Массив, содержащий объекты `GamepadHapticActuator` (en-US), каждый из которых представляет собой аппаратные средства тактильной обратной связи (haptic feedbac) доступные для контроллера.

`Gamepad.pose` (en-US) Только для чтения 

Объект `GamepadPose` (en-US) представляет информацию о положении WebVR контроллера (например, позиция и ориентация в 3D пространстве).

Пример
------


```js
window.addEventListener("gamepadconnected", function (e) {
  console.log(
    "Gamepad connected at index %d: %s. %d buttons, %d axes.",
    e.gamepad.index,
    e.gamepad.id,
    e.gamepad.buttons.length,
    e.gamepad.axes.length,
  );
});
```

Спецификации
------------

| Specification |
| --- |
| Gamepad # gamepad-interface |
| Gamepad Extensions # partial-gamepad-interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Using the Gamepad API (en-US)
* Gamepad API
NetworkInformation
==================

**Экспериментальная возможность:** **Это экспериментальная технология**  
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Интерфейс **`NetworkInformation`** содержит методы и свойства, связанные с типом сети браузера.

В нем нет объектов типа `NetworkInformation`, но другие интерфейсы, такие как `Navigator`, реализуют его.

Свойства
--------

*`Интерфейс NetworkInformation`* *не наследует других свойств.*

`NetworkInformation.connection` Только для чтения 

`Connection` (en-US) предоставляет информацию о сетевом соединении устройства.

Методы
------

`Интерфейс NetworkInformation` *ничего не предоставляет и не наследует других методов.*

Спецификации
------------

| Specification |
| --- |
| Network Information API # networkinformation-interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Информация о API сети. (en-US)
* Онлайн- и офлайн-события.
* Интерфейс `Navigator` который реализует его.
MediaError
==========

Интерфейс `MediaError` представляет собой ошибку, которая возникает при обработке мультимедиа в HTML-элементе на основе `HTMLMediaElement`, например `<audio>` или `<video>`.

Объект `MediaError` описывает ошибку в общих чертах, используя числовой код `code`, классифицирующий тип ошибки, и сообщение `message`, которое предоставляет информацию о том, что пошло не так.

Свойства экземпляра
-------------------

*Этот интерфейс не наследует никаких свойств.*

`MediaError.code`

Число, которое представляет тип произошедшей ошибки.

`MediaError.message` (en-US)

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

Методы экземпляра
-----------------

*Этот интерфейс не реализует и не наследует никаких методов и не имеет своих собственных.*

Спецификации
------------

| Specification |
| --- |
| HTML Standard # error-codes |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `HTMLMediaElement.error` (en-US)