recursal/MDN huggingface dataset:
BackgroundFetchRegistration.failureReason
=========================================

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Доступное только для чтения свойство **`failureReason`** интерфейса `BackgroundFetchRegistration` возвращает строку, значение которой указывает на причину неудачного выполнения фонового запроса.

Когда значение свойства меняется, то у связанного объекта `BackgroundFetchRegistration` срабатывает событие progress.

Значение
--------

Может принимать одну из следующих строк:

`""`

Фоновый запрос не завершён, либо завершён успешно.

`"aborted"`

Операция была прервана пользователем, либо был вызван `abort()`.

`"bad-status"`

Статус ответа не-ok (статус находится за пределами диапазона 200-299).

`"fetch-error"`

Запрос провалился по другим причинам, например CORS, или ошибки сети.

`"quota-exceeded"`

Во время операции была достигнута квота хранения.

`"download-total-exceeded"`

Было превышено указанное значение `downloadTotal`. Это значение было установлено при регистрациии фонового запроса.

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

Логирование этого свойства в консоль печатает причину завершения запроса с ошибкой, или пустую строку, если запрос был завершён успешно, либо ещё не завершён.


```js
console.log(bgFetch.failureReason);
```

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

| Specification |
| --- |
| Background Fetch # dom-backgroundfetchregistration-failurereason |

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

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

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Доступное только для чтения свойство **`uploaded`** интерфейса `BackgroundFetchRegistration` возвращает количество успешно переданных байт, изначально `0`.

Если значение этого свойства изменилось, то в связанном объекте `BackgroundFetchRegistration` происходит событие progress.

Значение
--------

`number`.

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

Вывод этого свойства в консоль возвращает число загруженных байт.


```js
console.log(bgFetch.uploaded);
```

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

| Specification |
| --- |
| Background Fetch # dom-backgroundfetchregistration-uploaded |

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
BackgroundFetchRegistration.abort()
===================================

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Метод **`abort()`** интерфейса `BackgroundFetchRegistration` прерывает активный фоновый запрос.

Синтаксис
---------


```js
abort();
```

### Параметры

Нет.

### Возвращаемое значение

`Promise`, результатом обработки которого будет `true`, если запрос успешно прерван.

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

Используйте `abort()`, чтобы прервать фоновый запрос в процессе работы.


```js
bgFetch.abort();
```

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

| Specification |
| --- |
| Background Fetch # background-fetch-registration-abort |

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

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

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Доступное только для чтения свойство **`downloadTotal`** интерфейса `BackgroundFetchRegistration` возвращает общий размер загрузки в байтах. Это значение устанавливается при регистрации запроса, или `0` если не установлено.

Значение
--------

`number`.

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

Логирование этого свойства в консоль возвращает общий размер загрузки в байтах.


```js
console.log(bgFetch.downloadTotal);
```

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

| Specification |
| --- |
| Background Fetch # dom-backgroundfetchregistration-downloadtotal |

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
BackgroundFetchRegistration.match()
===================================

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Метод **`match()`** интерфейса `BackgroundFetchRegistration` возвращает первое совпадение `BackgroundFetchRecord`.

Синтаксис
---------


```js
match(request);
match(request, options);
```

### Параметры

`request`

`Request` для которого вы пытаетесь найти записи.
 Может быть объектом `Request` или URL.


`options` Необязательный

Объект, который устанавливает параметры для операции `match`. Доступные параметры:

`ignoreSearch`

 Булево значение, которое определяет нужно ли игнорировать строку поиска в URL.
 Например, если параметр установлен как `true`, то подстрока `?value=bar`, которая является частью
 `http://foo.com/?value=bar`, будет игнорироваться при выполении сопоставления.
 Значение по умолчанию - `false`.


`ignoreMethod`

 Булево значение. Если оно установлено как `true`, то
 операциям сопоставления запрещается проверять метод `http` объекта `Request`.
 Если `false` (значение по умолчанию) только `GET` и `HEAD` разрешены.


`ignoreVary`

 Булево значение. Когда `true` сигнализирует, что заголовок `VARY`
 должен быть проигнорирован.
 Значение по умолчанию - `false`.



### Возвращаемое значение

`Promise` результатом обработки которого будет первый `BackgroundFetchRecord`, который соответствует запросу
 или `undefined`, если соответствий не найдено.

> 
> 
> **Note:** `BackgroundFetchRegistration.match()` в основном идентичен
>  `BackgroundFetchRegistration.matchAll()`, за исключением того, что вместо возвращения массива
>  всех совпадений, он возвращает только первое совпадение.
>  
> 
> 
> 

### Исключения

`InvalidStateError` `DOMException` (en-US)

Возвращается при вызове `match()` в тот момент, когда нет запросов в процессе выполнения. Это состояние будет отражено установкой флага `BackgroundFetchRegistration.recordsAvailable` как `false`.

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

В этом примере мы ищем запись с URL "/ep-5.mp3". Если `BackgroundFetchRecord` найдена, то мы можем вернуть некоторую информацию ней.


```js
bgFetch.match("/ep-5.mp3").then(async (record) => {
  if (!record) {
    console.log("Запись не найдена");
    return;
  }

  console.log(`Запрос`, record.request);
  const response = await record.responseReady;
  console.log(`Ответ`, response);
});
```

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

| Specification |
| --- |
| Background Fetch # background-fetch-registration-match |

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

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

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Доступное только для чтения свойство **`registration`** интерфейса `BackgroundFetchEvent` возвращает объект `BackgroundFetchRegistration`.

Значение
--------

`BackgroundFetchRegistration`.

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

В этом примере, если пользователь кликнет по элементу, отображающем ход загрузки, то это действие вызовет событие `onbackgroundfetchclick`. Текущий `BackgroundFetchRegistration` возвращается вызовом `event.registration`.


```js
addEventListener("backgroundfetchclick", (event) => {
  console.log(event.registration);
});
```

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

| Specification |
| --- |
| Background Fetch # dom-backgroundfetchevent-registration |

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

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

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Конструктор **`BackgroundFetchEvent()`** создаёт новый объект `BackgroundFetchEvent`. Этот конструктор обычно не используется, так как браузер создаёт такие объекты самостоятельно и, затем, передаёт их для колбэков событий фоновых запросов.

Синтаксис
---------


```js
new BackgroundFetchEvent(type, options);
```

### Параметры

`type`

 Строка с именем события.
 Он чувствителен к регистру, и браузеры устанавливают его как `backgroundfetchabort` или `backgroundfetchclick`.


`options`

Объект, который, *в дополнение к свойствам, определённым в `ExtendableEvent()` (en-US)*, имеет следующие свойства:

`registration`

Объект `BackgroundFetchRegistration`.


### Возвращаемое значение

Новый объект `BackgroundFetchEvent`.

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

| Specification |
| --- |
| Background Fetch # dom-backgroundfetchevent-backgroundfetchevent |

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

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

Конструктор **`URL()`** возвращает вновь созданный `URL` объект, отражающий URL, определяемый параметрами.

Если предоставленный базовый URL-адрес или итоговый URL-адрес не является валидным, то будет сгенерировано JavaScript исключение `TypeError`.

**Примечание:** Эта возможность доступна в Web Workers

Синтаксис
---------


```js
const url = new URL(url [, base])
```

### Параметры

`url`

Строка типа `USVString` (en-US) или любой объект, который может быть преобразован в строку (en-US), включая, например, элементы `<a>` и `<area>`, представляющие абсолютный и относительный URL-адрес соответственно. Если `url` это относительный URL-адрес, то параметр `base` становится обязательным, так как он будет использован в качестве базового URL-адреса. Если же `url` — абсолютный URL-адрес, то значение параметра `base` будет проигнорировано.

`base` Необязательный

Строка типа `USVString` (en-US). Используется в качестве базового адреса, когда `url` это относительный URL-адрес. Значение по умолчанию: `undefined`.


> 
> 
> **Note:** Как и в случае с любым другим Web API,
>  которое принимает на вход строку типа `USVString` (en-US),
>  аргументы `url` и `base` будут преобразованы в строку
>  независимо от исходного типа переданного значения.
>  В частности, вы можете использовать существующий `URL` объект в качестве аргумента
>  и он будет преобразован в строку значение которой равно значению свойства
>  `href` (en-US) переданного объекта.
>  
> 
> 
> 

### Исключения

| Исключение | Объяснение |
| --- | --- |
| `TypeError` | `url` (в случае с абсолютным URL-адресом) или `base` + `url` (в случае с относительным URL-адресом) является невалидным URL-адресом. |

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


```js
// Базовые URL-адреса
let m = "https://developer.mozilla.org";
let a = new URL("/", m); // => 'https://developer.mozilla.org/'
let b = new URL(m); // => 'https://developer.mozilla.org/'

new URL("en-US/docs", b); // => 'https://developer.mozilla.org/en-US/docs'
let d = new URL("/en-US/docs", b); // => 'https://developer.mozilla.org/en-US/docs'
new URL("/en-US/docs", d); // => 'https://developer.mozilla.org/en-US/docs'
new URL("/en-US/docs", a); // => 'https://developer.mozilla.org/en-US/docs'

new URL("/en-US/docs", "https://developer.mozilla.org/fr-FR/toto");
// => 'https://developer.mozilla.org/en-US/docs'

new URL("/en-US/docs", ""); // Генерирует TypeError исключение так как '' не является валидным URL-адресом
new URL("/en-US/docs"); // Генерирует TypeError исключение так как '/en-US/docs' не является валидным URL-адресом
new URL("http://www.example.com"); // => 'http://www.example.com/'
new URL("http://www.example.com", b); // => 'http://www.example.com/'

new URL("//foo.com", "https://example.com"); // => 'https://foo.com' (см. относительные URL-адреса)
```

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

| Specification |
| --- |
| URL Standard # dom-url-url |

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

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

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

* Полифил для `URL` доступен в core-js
* Этот интерфейс принадлежит: `URL`.
URL.createObjectURL()
=====================

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

Определение
-----------

**`URL.createObjectURL()`** - статический метод, который создаёт `DOMString`, содержащий URL с указанием на объект, заданный как параметр. Время жизни URL связано с `document` окна в котором он был создан. Новый URL объект может представлять собой `File` объект или `Blob` объект.

**Примечание:** Эта возможность доступна в Web Workers

Синтаксис
---------
```

objectURL = URL.createObjectURL(blob);
```

Параметры
---------

*blob*

Объект типа `File` или `Blob` для которого создаётся URL объект.

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

Смотрите Using object URLs to display images.

Примечания
----------

При каждом вызове `createObjectURL()`, создаётся новый URL объект, даже если он уже был ранее создан для того же самого объекта. Память для каждого из них нужно освобождать с помощью `URL.revokeObjectURL()` (en-US), в том случае, если они больше не нужны. Браузер сделает это автоматически с выгрузкой объекта, тем не менее в целях оптимизации производительности и использования памяти, следует принудительно выгружать их по возможности.

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

| Specification |
| --- |
| File API # dfn-createObjectURL |

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

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

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

* `URL.revokeObjectURL()` (en-US)
* Using files from web applications
URL.hash
========

 Свойство **`hash`** интерфейса `URL` — это строка типа `USVString` (en-US),
 содержащая символ `'#'`, после которого идет идентификатор фрагмента URL-адреса.

 Фрагмент не кодируется (en-US). Если URL-адрес не имеет
 идентификатора фрагмента, то данное свойство содержит пустую строку — `""`.

**Примечание:** Эта возможность доступна в Web Workers

Синтаксис
---------


```js
const string = url.hash;
url.hash = newHash;
```

### Значение

Строка типа `USVString` (en-US).

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


```js
const url = new URL(
  "https://developer.mozilla.org/ru/docs/Web/API/URL/href#Examples",
);
console.log(url.hash); // Выведет: '#Examples'
```

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

| Specification |
| --- |
| URL Standard # dom-url-hash |

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

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

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

* Интерфейс `URL`, которому принадлежит это свойство.
WebGL tutorial
==============

WebGL позволяет использовать API, основанную на OpenGL ES 2.0 для осуществления 3D рендеринга в HTML `<canvas>` в браузерах, которые его поддерживают без использования плагинов. WebGL программы состоят из программ, написанных на JavaScript, и специального кода шейдеров, который выполняется на видеокарте. WebGL элементы могут использоваться с HTML-элементами и скомпонованы с другими частями страницы или фона страницы.

В этом руководстве с нуля рассказывается о том, как использовать элемент `<canvas>` для отрисовки WebGL. Предоставленные примеры помогут вам понять, как можно использовать WebGL, также вы сможете использовать код из примеров как сниппеты для ваших разработок.

Перед тем как начать
--------------------

Использование элемента `<canvas>` - это не сложно, но вы должны понимать основы HTML и JavaScript. `<canvas>` и WebGL не поддерживаются в некоторых старых браузерах, но поддерживаются в последних версиях всех основных. Чтобы рисовать графику на canvas нужно использовать объекты контекста JavaScript, который создаёт графику на лету.

В этом руководстве
------------------

Начало работы с WebGL

Как настроить WebGL контекст.

Добавление 2D контекста в WebGL контекст

Как визуализировать простые плоские фигуры используя WebGL.

Использование шейдеров для добавления цвета в WebGL

Демонстрация того, как добавить цвет фигурам используя шейдеры.

Анимирование объектов с WebGL

Как поворачивать и передвигать объекты для создания простых анимаций.

Создание 3D объектов с WebGL

Как создать и анимировать 3D объект (куб).

Использование текстур в WebGL

Как перевести текстуру на поверхность объекта.

Освещение объектов в WebGL

Как симулировать эффект света в контексте WebGL.

Анимирование текстур в WebGL (en-US)

Как анимировать текстуры; здесь путём отображения Ogg видео на поверхность вращающегося куба.
Range.getBoundingClientRect
===========================

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

Метод **`Range.getBoundingClientRect()`** возвращает объект `ClientRect`, соответствующий фрагменту документа, на основе которого создан объект Range; это прямоугольник, непосредственно обрамляющий объединение прямоугольников для каждого элемента фрагмента документа.

Синтаксис
---------
```

boundingRect = range.getBoundingClientRect()
```

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


```js
range = document.createRange();
range.selectNode(document.getElementsByTagName("div").item(0));
rect = range.getBoundingClientRect();
```

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

| Specification |
| --- |
| CSSOM View Module # dom-range-getboundingclientrect |

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

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

See also
--------

* The DOM interfaces index
Range.collapsed
===============

Доступное только для чтения свойство **`Range.collapsed`** возвращает флаг `Boolean` (en-US), который указывает, в одной ли и той же позиции находятся начало и конец диапазона `Range`. Оно возвращает `true`, если начало и конец граничных точек диапазона `Range` являются одной и той же точкой в DOM, `false` – в противном случае.

Свёрнутый диапазон `Range` является пустым, не имеет содержимого, определяет единую точку в древе DOM. Для того, чтобы свернуть диапазон, смотрите метод `Range.collapse()` (en-US).

Syntax
------
```

isCollapsed = range.collapsed;
```

Example
-------


```js
var range = document.createRange();

range.setStart(startNode, startOffset);
range.setEnd(endNode, endOffset);
isCollapsed = range.collapsed;
```

Specifications
--------------

| Specification |
| --- |
| DOM Standard # ref-for-dom-range-collapsed① |

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

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

See also
--------

* The DOM interfaces index
Range.surroundContents()
========================

Метод **`Range.surroundContents()`** перемещает содержимое `Range` в новый элемент, который расположится в начале указанного диапазона.

Этот метод приблизительно эквивалентен коду `newNode.appendChild(range.extractContents()); range.insertNode(newNode)`. После его работы крайние точки диапазона будут включать в себя `newNode`.

Если `Range` разделяет любой не текстовый элемент хотя бы одной точкой, произойдёт исключение. В отличие от альтернативы выше, если в диапазоне есть частично выделенные элементы, они не будут клонированы, а вместо этого производит ошибка.

Синтаксис
---------
```

range.surroundContents(newNode);
```

### Параметры

*newNode*

Элемент (en-US) который будет содержать в себе выделенный текст.

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


```js
var range = document.createRange();
var newNode = document.createElement("p");

range.selectNode(document.getElementsByTagName("div").item(0));
range.surroundContents(newNode);
```

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

| Specification |
| --- |
| DOM Standard # dom-range-surroundcontents |

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

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

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

* The DOM interfaces index