<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wwoss.direct.quickconnect.to/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>worldwide open-source software - software:development:web:docs:web:api</title>
        <description></description>
        <link>https://wwoss.direct.quickconnect.to/</link>
        <lastBuildDate>Sat, 11 Apr 2026 02:52:56 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=wiki:logo.png</url>
            <title>worldwide open-source software</title>
            <link>https://wwoss.direct.quickconnect.to/</link>
        </image>
        <item>
            <title>api</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:api:api&amp;rev=1745509023</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;веб-api&quot;&gt;Веб-API&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
При написании кода для Интернета доступно большое количество веб-&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;. Ниже приведен список всех &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; и интерфейсов (типов объектов), которые вы можете использовать при разработке своего веб-приложения или сайта.
&lt;/p&gt;

&lt;p&gt;
Веб-&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; обычно используются с JavaScript, хотя это не всегда так.
&lt;/p&gt;

&lt;p&gt;
Технические характеристики
Это список всех доступных &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; А&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; устройств вывода звука Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Б&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; фоновой выборки Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Фоновая синхронизация Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Фоновые задачи&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; обнаружения штрих-кода Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; батареи&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Маяк&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Bluetooth &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; широковещательного канала&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; С&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Стили счетчиков &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; Custom Highlight &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; загрузки шрифтов &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; рисования &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; свойств и значений &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; модели типизированных объектов &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSOM&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; холста&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; обмена сообщениями канала&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; буфера обмена&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; потоков сжатия&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Консольный &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; выбора контактов Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; указателя содержания Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; магазина файлов cookie Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; управления учетными данными&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Д&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ДОМ&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; События ориентации устройства&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Е&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; кодирования&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Зашифрованные мультимедийные расширения&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; пипетки Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ф&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; FedCM Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Получить &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловый &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; файловой системы&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; файлов и каталогов&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Полноэкранный &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; г&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; геймпада&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; геолокации&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Геометрические интерфейсы&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ЧАС&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; DOM&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; перетаскивания &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; дезинфицирующего &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-кода Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; История &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; я&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; обнаружения бездействия Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; захвата изображений Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ИндекседБД&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Чернильный &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;-интерфейс наблюдателя за пересечением&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; К&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; клавиатуры Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; л&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; обработчика запуска Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; доступа к локальным шрифтам Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; М&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; возможностей мультимедиа&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Захват мультимедиа и потоки&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; сеанса мультимедиа&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Расширения источника мультимедиа Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Запись медиапотока&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Н&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; навигации Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; сетевой информации Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; п&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; видимости страницы&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; обработчика платежей Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; запроса платежа&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; производительности&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Периодическая фоновая синхронизация Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; разрешений&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Картинка в картинке &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; События указателя&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; блокировки указателя&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Попов &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; презентации Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; приоритетного планирования задач&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Push-&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; р&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; отчетов Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Изменить размер &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;-интерфейса Observer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; С&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; захвата экрана&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; ориентации экрана&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; блокировки пробуждения экрана&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; выбора&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сенсорный &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; События, отправленные сервером&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; сервис-воркеров&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Хранилище&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; доступа к хранилищу&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Потоки&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Т&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сенсорные события&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; доверенных типов&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; U&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; События пользовательского интерфейса&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; шаблонов &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адресов Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; клиентских подсказок агента пользователя Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; вибрации&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; просмотра переходов Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; виртуальной клавиатуры Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Визуальное окно просмотра&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вт&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Веб-анимация&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-аудио&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-аутентификации&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Веб-компоненты&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-криптографии&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-замков&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Веб-MIDI-&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Веб-&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; NFC Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Веб-уведомления&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-ресурсов&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-речи&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-хранилища&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-воркеров&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-кодеков&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGL&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;-интерфейс веб-графического процессора Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebHID-&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Веб-OTP &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebRTC&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-транспорта&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebUSB-&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-VR Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ВебВТТ&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; устройства WebXR Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; веб-сокетов&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; наложения оконных элементов управления Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Икс&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XMLHttpRequest&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Интерфейсы&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Это список всех доступных интерфейсов (то есть типов объектов).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;a&quot;&gt;A&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AbortController&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AbortSignal&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AbsoluteOrientationSensor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AbstractRange&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Accelerometer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AesCbcParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AesCtrParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AesGcmParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AesKeyGenParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AmbientLightSensor Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AnalyserNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ANGLE_instanced_arrays&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Animation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AnimationEffect&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AnimationEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AnimationPlaybackEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AnimationTimeline&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Attr&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioBuffer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioBufferSourceNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioContext&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioData Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioDecoder Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioDestinationNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioEncoder Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioListener&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioParam&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioParamDescriptor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioParamMap&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioProcessingEvent Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioScheduledSourceNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioSinkInfo Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioTrack&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioTrackList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioWorklet&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioWorkletGlobalScope&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioWorkletNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AudioWorkletProcessor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AuthenticatorAssertionResponse&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AuthenticatorAttestationResponse&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AuthenticatorResponse&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;b&quot;&gt;B&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BackgroundFetchEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BackgroundFetchManager Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BackgroundFetchRecord Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BackgroundFetchRegistration Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BackgroundFetchUpdateUIEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BarcodeDetector Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BarProp&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BaseAudioContext&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BatteryManager&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BeforeInstallPromptEvent Экспериментальный Нестандартный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BeforeUnloadEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BiquadFilterNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Blob&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BlobEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Bluetooth Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BluetoothCharacteristicProperties Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BluetoothDevice Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BluetoothRemoteGATTCharacteristic Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BluetoothRemoteGATTDescriptor Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BluetoothRemoteGATTServer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BluetoothRemoteGATTService Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BluetoothUUID&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; BroadcastChannel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ByteLengthQueuingStrategy&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;c&quot;&gt;C&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Cache&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CacheStorage&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CanMakePaymentEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CanvasCaptureMediaStreamTrack&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CanvasGradient&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CanvasPattern&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CanvasRenderingContext2D&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CaptureController Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CaretPosition Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CDATASection&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ChannelMergerNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ChannelSplitterNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CharacterData&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Client&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Clients&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Clipboard&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ClipboardEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ClipboardItem&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CloseEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Comment&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CompositionEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CompressionStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; console&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ConstantSourceNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ContactAddress Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ContactsManager Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ContentIndex Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ContentIndexEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ContentVisibilityAutoStateChangeEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ConvolverNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CookieChangeEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CookieStore Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CookieStoreManager Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CountQueuingStrategy&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Credential&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CredentialsContainer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Crypto&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CryptoKey&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CryptoKeyPair&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSPViolationReportBody&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSAnimation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSConditionRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSContainerRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSCounterStyleRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSFontFaceRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSFontFeatureValuesRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSFontPaletteValuesRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSGroupingRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSImageValue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSImportRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSKeyframeRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSKeyframesRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSKeywordValue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSLayerBlockRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSLayerStatementRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSMathInvert&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSMathMax&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSMathMin&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSMathNegate&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSMathProduct&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSMathSum&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSMathValue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSMatrixComponent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSMediaRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSNamespaceRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSNumericArray&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSNumericValue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSPageRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSPerspective&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSPositionValue Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSPrimitiveValue Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSPropertyRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSPseudoElement Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSRotate&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSRuleList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSScale&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSSkew&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSSkewX&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSSkewY&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSStyleDeclaration&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSStyleRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSStyleSheet&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSStyleValue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSSupportsRule&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSTransformComponent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSTransformValue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSTransition&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSTranslate&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSUnitValue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSUnparsedValue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSValue Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSValueList Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSSVariableReferenceValue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CustomElementRegistry&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CustomEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CustomStateSet Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;d&quot;&gt;D&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DataTransfer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DataTransferItem&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DataTransferItemList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DecompressionStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DedicatedWorkerGlobalScope&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DelayNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DeprecationReportBody Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DeviceMotionEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DeviceMotionEventAcceleration&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DeviceMotionEventRotationRate&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DeviceOrientationEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DirectoryEntrySync Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DirectoryReaderSync Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Document&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DocumentFragment&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DocumentTimeline&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DocumentType&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMError Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMException&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMHighResTimeStamp&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMImplementation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMMatrix(ВебкитCSSMatrix)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMMatrixReadOnly&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMParser&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMPoint&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMPointReadOnly&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMQuad&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMRect&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMRectReadOnly&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMStringList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMStringMap&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DOMTokenList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DragEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DynamicsCompressorNode&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;e&quot;&gt;E&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EcdhKeyDeriveParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EcdsaParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EcKeyGenParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EcKeyImportParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Element&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ElementInternals&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EncodedAudioChunk Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EncodedVideoChunk&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ErrorEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Event&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EventCounts&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EventSource&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EventTarget&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ExtendableCookieChangeEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ExtendableEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ExtendableMessageEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EyeDropper Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;f&quot;&gt;F&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FeaturePolicy Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FederatedCredential Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FetchEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; File&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileEntrySync Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileReader&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileReaderSync&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystem&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystemDirectoryEntry&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystemDirectoryHandle&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystemDirectoryReader&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystemEntry&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystemFileEntry&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystemFileHandle&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystemHandle&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystemSync Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystemSyncAccessHandle&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FileSystemWritableFileStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FocusEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FontData Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FontFace&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FontFaceSet&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FontFaceSetLoadEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FormData&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FormDataEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FragmentDirective Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;g&quot;&gt;G&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GainNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gamepad&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GamepadButton&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GamepadEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GamepadHapticActuator&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GamepadPose Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Geolocation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GeolocationCoordinates&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GeolocationPosition&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GeolocationPositionError&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GestureEvent Нестандартный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPU Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUAdapter Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUAdapterInfo Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUBindGroup Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUBindGroupLayout Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUBuffer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUCanvasContext Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUCommandBuffer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUCommandEncoder Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUCompilationInfo Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUCompilationMessage Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUComputePassEncoder Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUComputePipeline Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUDevice Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUDeviceLostInfo Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUError Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUExternalTexture Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUInternalError Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUOutOfMemoryError Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUPipelineError Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUPipelineLayout Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUQuerySet Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUQueue Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPURenderBundle Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPURenderBundleEncoder Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPURenderPassEncoder Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPURenderPipeline Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUSampler Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUShaderModule Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUSupportedFeatures Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUSupportedLimits Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUTexture Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUTextureView Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUUncapturedErrorEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPUValidationError Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GravitySensor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gyroscope&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;h&quot;&gt;H&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HashChangeEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Headers&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HID Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HIDConnectionEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HIDDevice Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HIDInputReportEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Highlight Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HighlightRegistry Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; History&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HkdfParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HmacImportParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HmacKeyGenParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HMDVRDevice Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLAllCollection&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLAnchorElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLAreaElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLAudioElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLBaseElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLBodyElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLBRElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLButtonElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLCanvasElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLCollection&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLDataElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLDataListElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLDetailsElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLDialogElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLDivElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLDListElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLDocument&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLEmbedElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLFieldSetElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLFontElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLFormControlsCollection&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLFormElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLFrameSetElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLHeadElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLHeadingElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLHRElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLHtmlElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLIFrameElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLImageElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLInputElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLLabelElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLLegendElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLLIElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLLinkElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLMapElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLMarqueeElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLMediaElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLMenuElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLMenuItemElement Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLMetaElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLMeterElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLModElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLObjectElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLOListElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLOptGroupElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLOptionElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLOptionsCollection&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLOutputElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLParagraphElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLParamElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLPictureElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLPreElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLProgressElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLQuoteElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLScriptElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLSelectElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLSlotElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLSourceElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLSpanElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLStyleElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTableCaptionElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTableCellElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTableColElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTableElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTableRowElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTableSectionElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTemplateElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTextAreaElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTimeElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTitleElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLTrackElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLUListElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLUnknownElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTMLVideoElement&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;i&quot;&gt;I&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBCursor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBCursorWithValue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBDatabase&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBFactory&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBIndex&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBKeyRange&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBLocaleAwareKeyRange Экспериментальный Нестандартный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBObjectStore&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBOpenDBRequest&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBRequest&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBTransaction&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IDBVersionChangeEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IdentityCredential Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IdleDeadline&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IdleDetector Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IIRFilterNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ImageBitmap&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ImageBitmapRenderingContext&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ImageCapture Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ImageData&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ImageDecoder Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ImageTrack Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ImageTrackList Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ink Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; InkPresenter Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; InputDeviceCapabilities Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; InputDeviceInfo&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; InputEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; InstallEvent Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IntersectionObserver&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IntersectionObserverEntry&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; InterventionReportBody Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;k&quot;&gt;K&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Keyboard Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; KeyboardEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; KeyboardLayoutMap Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; KeyframeEffect&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;l&quot;&gt;L&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LargestContentfulPaint Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LaunchParams Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LaunchQueue Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LayoutShift Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LayoutShiftAttribution Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LinearAccelerationSensor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Location&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Lock&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LockManager&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;m&quot;&gt;M&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Magnetometer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MathMLElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaCapabilities&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaDeviceInfo&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaDevices&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaElementAudioSourceNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaEncryptedEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaError&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaImage&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaKeyMessageEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaKeys&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaKeySession&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaKeyStatusMap&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaKeySystemAccess&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaMetadata&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaQueryList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaQueryListEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaRecorder&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaRecorderErrorEvent Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaSession&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaSource&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaSourceHandle Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaStreamAudioDestinationNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaStreamAudioSourceNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaStreamEvent Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaStreamTrack&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaStreamTrackAudioSourceNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaStreamTrackEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaStreamTrackGenerator Экспериментальный Нестандартный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaStreamTrackProcessor Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaTrackConstraints&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaTrackSettings&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MediaTrackSupportedConstraints&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MerchantValidationEvent Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MessageChannel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MessageEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MessagePort&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Metadata Экспериментальный Нестандартный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MIDIAccess&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MIDIConnectionEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MIDIInput&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MIDIInputMap&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MIDIMessageEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MIDIOutput&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MIDIOutputMap&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MIDIPort&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MimeType Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MimeTypeArray Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MouseEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MouseScrollEvent Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MutationEvent Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MutationObserver&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MutationRecord&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;n&quot;&gt;N&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NamedNodeMap&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NavigateEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Navigation Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NavigationCurrentEntryChangeEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NavigationDestination Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NavigationHistoryEntry Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NavigationPreloadManager&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NavigationTransition Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Navigator&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NavigatorUAData Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NDEFMessage Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NDEFReader Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NDEFReadingEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NDEFRecord Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NetworkInformation Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Node&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NodeIterator&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NodeList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Notification&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NotificationEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NotifyAudioAvailableEvent Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;o&quot;&gt;O&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OES_draw_buffers_indexed&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OfflineAudioCompletionEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OfflineAudioContext&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OffscreenCanvas&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OffscreenCanvasRenderingContext2D&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OrientationSensor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OscillatorNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OTPCredential Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OverconstrainedError&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;p&quot;&gt;P&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PageTransitionEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PaintWorkletGlobalScope Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PannerNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PasswordCredential Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Path2D&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PaymentAddress Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PaymentManager Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PaymentMethodChangeEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PaymentRequest&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PaymentRequestEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PaymentRequestUpdateEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PaymentResponse&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Pbkdf2Params&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Performance&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceElementTiming Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceEntry&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceEventTiming&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceLongTaskTiming Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceMark&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceMeasure&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceNavigation Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceNavigationTiming&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceObserver&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceObserverEntryList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformancePaintTiming&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceResourceTiming&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceServerTiming&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PerformanceTiming Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PeriodicSyncEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PeriodicSyncManager Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PeriodicWave&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Permissions&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PermissionStatus&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PictureInPictureEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PictureInPictureWindow&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Plugin Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PluginArray Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Point Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PointerEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PopStateEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PositionSensorVRDevice Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Presentation Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PresentationAvailability Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PresentationConnection Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PresentationConnectionAvailableEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PresentationConnectionCloseEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PresentationConnectionList Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PresentationReceiver Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PresentationRequest Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ProcessingInstruction&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ProgressEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PromiseRejectionEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PublicKeyCredential&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PushEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PushManager&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PushMessageData&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PushSubscription&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PushSubscriptionOptions&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;r&quot;&gt;R&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RadioNodeList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Range&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ReadableByteStreamController&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ReadableStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ReadableStreamBYOBReader&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ReadableStreamBYOBRequest&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ReadableStreamDefaultController&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ReadableStreamDefaultReader&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RelativeOrientationSensor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RemotePlayback&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Report&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ReportBody&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ReportingObserver&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Request&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ResizeObserver&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ResizeObserverEntry&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ResizeObserverSize&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Response&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RsaHashedImportParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RsaHashedKeyGenParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RsaOaepParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RsaPssParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCAudioSourceStats&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCCertificate&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCDataChannel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCDataChannelEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCDtlsTransport&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCDTMFSender&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCDTMFToneChangeEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCError&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCErrorEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCIceCandidate&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCIceCandidatePair&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCIceCandidatePairStats&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCIceCandidateStats&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCIceParameters&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCIceServer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCIceTransport&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCIdentityAssertion Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCInboundRtpStreamStats&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCOutboundRtpStreamStats&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCPeerConnection&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCPeerConnectionIceErrorEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCPeerConnectionIceEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCPeerConnectionStats&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCRemoteOutboundRtpStreamStats&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCRtpCodecParameters&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCRtpContributingSource&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCRtpEncodingParameters&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCRtpReceiver&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCRtpSender&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCRtpStreamStats&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCRtpTransceiver&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCSctpTransport&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCSessionDescription&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCStatsReport&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTCTrackEvent&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;s&quot;&gt;S&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Sanitizer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Scheduler&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Scheduling Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Screen&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ScreenOrientation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ScriptProcessorNode Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ScrollTimeline Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SecurityPolicyViolationEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Selection&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Sensor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SensorErrorEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SerialPort Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ServiceWorker&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ServiceWorkerContainer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ServiceWorkerGlobalScope&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ServiceWorkerRegistration&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ShadowRoot&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SharedWorker&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SharedWorkerGlobalScope&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SourceBuffer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SourceBufferList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechGrammar Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechGrammarList Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechRecognition&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechRecognitionAlternative&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechRecognitionErrorEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechRecognitionEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechRecognitionResult&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechRecognitionResultList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechSynthesis&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechSynthesisErrorEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechSynthesisEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechSynthesisUtterance&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SpeechSynthesisVoice&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; StaticRange&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; StereoPannerNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Storage&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; StorageEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; StorageManager&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; StylePropertyMap&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; StylePropertyMapReadOnly&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; StyleSheet&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; StyleSheetList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SubmitEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SubtleCrypto&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAngle&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimateColorElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedAngle&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedBoolean&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedEnumeration&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedInteger&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedLength&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedLengthList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedNumber&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedNumberList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedPreserveAspectRatio&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedRect&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedString&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimatedTransformList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimateElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimateMotionElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimateTransformElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGAnimationElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGCircleElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGClipPathElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGComponentTransferFunctionElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGCursorElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGDefsElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGDescElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGEllipseElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEBlendElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEColorMatrixElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEComponentTransferElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFECompositeElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEConvolveMatrixElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEDiffuseLightingElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEDisplacementMapElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEDistantLightElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEDropShadowElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEFloodElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEFuncAElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEFuncBElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEFuncGElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEFuncRElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEGaussianBlurElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEImageElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEMergeElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEMergeNodeElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEMorphologyElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEOffsetElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFEPointLightElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFESpecularLightingElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFESpotLightElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFETileElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFETurbulenceElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFilterElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFontElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFontFaceElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFontFaceFormatElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFontFaceNameElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFontFaceSrcElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGFontFaceUriElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGForeignObjectElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGGElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGGeometryElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGGlyphElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGGlyphRefElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGGradientElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGGraphicsElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGHKernElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGImageElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGLength&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGLengthList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGLinearGradientElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGLineElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGMarkerElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGMaskElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGMetadataElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGMissingGlyphElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGMPathElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGNumber&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGNumberList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGPathElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGPatternElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGPoint Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGPointList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGPolygonElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGPolylineElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGPreserveAspectRatio&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGRadialGradientElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGRect&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGRectElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGRenderingIntent Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGScriptElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGSetElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGStopElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGStringList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGStyleElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGSVGElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGSwitchElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGSymbolElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGTextContentElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGTextElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGTextPathElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGTextPositioningElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGTitleElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGTransform&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGTransformList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGTRefElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGTSpanElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGUnitTypes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGUseElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGViewElement&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SVGVKernElement Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SyncEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SyncManager Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;t&quot;&gt;T&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TaskAttributionTiming Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TaskController&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TaskPriorityChangeEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TaskSignal&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Text&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TextDecoder&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TextDecoderStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TextEncoder&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TextEncoderStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TextMetrics&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TextTrack&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TextTrackCue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TextTrackCueList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TextTrackList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TimeEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TimeRanges&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ToggleEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Touch&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TouchEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TouchList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TrackEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TransformStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TransformStreamDefaultController&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TransitionEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TreeWalker&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TrustedHTML&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TrustedScript&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TrustedScriptURL&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TrustedTypePolicy&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TrustedTypePolicyFactory&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;u&quot;&gt;U&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; UIEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; URLPattern Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; URLSearchParams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USB Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBAlternateInterface Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBConfiguration Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBConnectionEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBDevice Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBEndpoint Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBInterface Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBInTransferResult Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBIsochronousInTransferPacket Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBIsochronousInTransferResult Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBIsochronousOutTransferPacket Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBIsochronousOutTransferResult Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; USBOutTransferResult Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; UserActivation&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;v&quot;&gt;V&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ValidityState&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VideoColorSpace&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VideoDecoder&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VideoEncoder&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VideoFrame&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VideoPlaybackQuality&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VideoTrack&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VideoTrackList&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ViewTimeline Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ViewTransition Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VirtualKeyboard Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VisibilityStateEntry Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VisualViewport&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VRDisplay Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VRDisplayCapabilities Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VRDisplayEvent Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VREyeParameters Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VRFieldOfView Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VRFrameData Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VRLayerInit Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VRPose Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VRStageParameters Нестандартный Устаревший&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VTTCue&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VTTRegion&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;w&quot;&gt;W&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WakeLock&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WakeLockSentinel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WaveShaperNode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGL2RenderingContext&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLActiveInfo&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLBuffer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLContextEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLFramebuffer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLObject&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLProgram&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLQuery&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLRenderbuffer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLRenderingContext&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLSampler&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLShader&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLShaderPrecisionFormat&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLSync&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLTexture&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLTransformFeedback&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLUniformLocation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebGLVertexArrayObject&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebSocket&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebTransport&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebTransportBidirectionalStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebTransportDatagramDuplexStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebTransportError&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WebTransportReceiveStream Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WGSLLanguageFeatures Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WheelEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Window&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WindowClient&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WindowControlsOverlay Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WindowControlsOverlayGeometryChangeEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Worker&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WorkerGlobalScope&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WorkerLocation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WorkerNavigator&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Worklet&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WorkletGlobalScope&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WritableStream&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WritableStreamDefaultController&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WritableStreamDefaultWriter&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;x&quot;&gt;X&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XMLDocument&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XMLHttpRequest&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XMLHttpRequestEventTarget&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XMLHttpRequestUpload&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XMLSerializer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XPathEvaluator&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XPathException&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XPathExpression&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XPathNSResolver&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XPathResult&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRAnchor Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRAnchorSet Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRBoundedReferenceSpace Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRCompositionLayer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRCPUDepthInformation Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRCubeLayer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRCylinderLayer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRDepthInformation Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XREquirectLayer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRFrame Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRHand&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRHitTestResult Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRHitTestSource Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRInputSource&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRInputSourceArray Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRInputSourceEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRInputSourcesChangeEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRJointPose&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRJointSpace&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRLayer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRLayerEvent Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRLightEstimate Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRLightProbe Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRMediaBinding Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRPose&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRProjectionLayer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRQuadLayer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRRay Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRReferenceSpace&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRReferenceSpaceEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRRenderState Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRRigidTransform&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRSession Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRSessionEvent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRSpace&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRSubImage Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRSystem Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRTransientInputHitTestResult Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRTransientInputHitTestSource Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRView Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRViewerPose&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRViewport&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRWebGLBinding Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRWebGLDepthInformation Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRWebGLLayer Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XRWebGLSubImage Экспериментальный&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XSLTProcessor&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0435\u0431-API&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0435\u0431-api&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-35907&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://developer.mozilla.org/ru/docs/Web/API&quot; class=&quot;urlextern&quot; title=&quot;https://developer.mozilla.org/ru/docs/Web/API&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;35908-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 24 Apr 2025 15:37:03 +0000</pubDate>
        </item>
        <item>
            <title>canvas_api</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:api:canvas_api&amp;rev=1692727399</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;canvas_api&quot;&gt;Canvas API&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Canvas &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; (Холст &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;) предоставляет средства для рисования графики с помощью JavaScript и элемента &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; &amp;lt;canvas&amp;gt; . Помимо прочего, его можно использовать для анимации, игровой графики, визуализации данных, манипулирования фотографиями и обработки видео в реальном времени.
&lt;/p&gt;

&lt;p&gt;
Canvas &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; в основном ориентирован на 2D-графику. &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; WebGL , который также использует этот &amp;lt;canvas&amp;gt;элемент, рисует 2D- и 3D-графику с аппаратным ускорением.
&lt;/p&gt;

&lt;p&gt;
Базовый пример
Этот простой пример рисует зеленый прямоугольник на холсте.
&lt;/p&gt;

&lt;p&gt;
&lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;
&lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;
Играть
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
&amp;lt;canvas id=«canvas»&amp;gt;&amp;lt;/canvas&amp;gt;
JavaScript
Метод Document.getElementById()получает ссылку на &amp;lt;canvas&amp;gt;элемент &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;. Затем HTMLCanvasElement.getContext()метод получает контекст этого элемента — объект, на котором будет отображаться рисунок.
&lt;/p&gt;

&lt;p&gt;
Фактический рисунок выполняется с использованием CanvasRenderingContext2Dинтерфейса. Свойство fillStyleделает прямоугольник зеленым. Метод fillRect()помещает верхний левый угол в точку (10, 10) и присваивает ему размер 150 единиц в ширину и 100 в высоту.
&lt;/p&gt;

&lt;p&gt;
JS
Играть
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
const canvas = document.getElementById(«canvas»);
const ctx = canvas.getContext(«2d»);
&lt;/p&gt;

&lt;p&gt;
ctx.fillStyle = «green»;
ctx.fillRect(10, 10, 150, 100);
Результат
Играть
&lt;/p&gt;

&lt;p&gt;
Ссылка
HTMLCanvasElement
CanvasRenderingContext2D
CanvasGradient
CanvasPattern
ImageBitmap
ImageData
TextMetrics
OffscreenCanvas
Path2D Экспериментальный
ImageBitmapRenderingContext Экспериментальный
Примечание. Интерфейсы, связанные с ними WebGLRenderingContext, указаны в разделе WebGL .
&lt;/p&gt;

&lt;p&gt;
Примечание: OffscreenCanvas также доступно в веб-воркерах.
&lt;/p&gt;

&lt;p&gt;
CanvasCaptureMediaStreamTrackэто связанный интерфейс.
&lt;/p&gt;

&lt;p&gt;
Руководства и учебные пособия
Учебное пособие по холсту
Подробное руководство, охватывающее как базовое использование Canvas &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;, так и его расширенные функции.
&lt;/p&gt;

&lt;p&gt;
Глубокое погружение в HTML5 Canvas
Практическое введение в Canvas &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; и WebGL длиной в книгу.
&lt;/p&gt;

&lt;p&gt;
Справочник по холсту
Удобный справочник по Canvas &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;.
&lt;/p&gt;

&lt;p&gt;
Манипулирование видео с помощью холста
Объединение &amp;lt;video&amp;gt;и &amp;lt;canvas&amp;gt;манипулирование видеоданными в реальном времени.
&lt;/p&gt;

&lt;p&gt;
Библиотеки
Canvas &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; чрезвычайно мощный, но не всегда простой в использовании. Перечисленные ниже библиотеки могут ускорить и упростить создание проектов на основе холста.
&lt;/p&gt;

&lt;p&gt;
EaselJS — это библиотека холстов с открытым исходным кодом, которая упрощает создание игр, генеративного искусства и других высокографических задач.
Fabric.js — это библиотека холстов с открытым исходным кодом и возможностями анализа SVG.
Heatmap.js — это библиотека с открытым исходным кодом для создания тепловых карт данных на основе холста.
JavaScript InfoVis Toolkit создает интерактивную визуализацию данных.
Konva.js — это библиотека 2D-холста для настольных и мобильных приложений.
p5.js имеет полный набор функций рисования на холсте для художников, дизайнеров, преподавателей и новичков.
Paper.js — это среда разработки сценариев векторной графики с открытым исходным кодом, работающая поверх &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; Canvas.
Phaser — это быстрая, бесплатная и увлекательная платформа с открытым исходным кодом для браузерных игр на основе Canvas и WebGL.
Pts.js — это библиотека для творческого кодирования и визуализации в Canvas и SVG.
Rekapi — это &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; создания ключевых кадров анимации для Canvas.
Scrawl-canvas — это библиотека JavaScript с открытым исходным кодом для создания и управления 2D-элементами холста.
Платформа ZIM предоставляет удобства, компоненты и элементы управления для творческого кодирования на холсте, включая специальные возможности и сотни красочных руководств.
Sprig — это удобная для начинающих библиотека разработки игр на основе плиток с открытым исходным кодом, использующая Canvas.
Примечание. См. &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; WebGL для 2D- и 3D-библиотек, использующих WebGL.
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 22 Aug 2023 18:03:19 +0000</pubDate>
        </item>
        <item>
            <title>mediastream</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:api:mediastream&amp;rev=1692723546</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;медиапоток&quot;&gt;Медиапоток&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Интерфейс MediaStreamпредставляет собой поток медиаконтента. Поток состоит из нескольких дорожек , например видео- или аудиодорожек. Каждая дорожка указывается как экземпляр MediaStreamTrack.
&lt;/p&gt;

&lt;p&gt;
Вы можете получить MediaStreamобъект либо с помощью конструктора, либо путем вызова таких функций, как MediaDevices.getUserMedia(), MediaDevices.getDisplayMedia()или HTMLCanvasElement.captureStream().
&lt;/p&gt;

&lt;p&gt;
Некоторые пользовательские агенты подклассифицируют этот интерфейс для предоставления более точной информации или функций, как в CanvasCaptureMediaStreamTrack.
&lt;/p&gt;

&lt;p&gt;
EventTarget
MediaStream
Конструктор
MediaStream()
Создает и возвращает новый MediaStreamобъект. Вы можете создать пустой поток, поток, основанный на существующем потоке, или поток, содержащий указанный список дорожек (заданный как массив объектов MediaStreamTrack).
&lt;/p&gt;

&lt;p&gt;
Свойства экземпляра
Этот интерфейс наследует свойства своего родителя, EventTarget.
&lt;/p&gt;

&lt;p&gt;
MediaStream.active Только чтение
Логическое значение, которое возвращается , trueесли MediaStreamактивен или falseнет.
&lt;/p&gt;

&lt;p&gt;
MediaStream.id Только чтение
Строка, содержащая 36-значный универсальный уникальный идентификатор ( UUID ) объекта.
&lt;/p&gt;

&lt;p&gt;
Методы экземпляра
Этот интерфейс наследует методы от своего родителя, EventTarget.
&lt;/p&gt;

&lt;p&gt;
MediaStream.addTrack()
Сохраняет копию данного параметра MediaStreamTrackв качестве аргумента. Если трек уже добавлен к объекту MediaStream, ничего не происходит.
&lt;/p&gt;

&lt;p&gt;
MediaStream.clone()
Возвращает клон объекта MediaStream. Однако клон будет иметь уникальное значение для id.
&lt;/p&gt;

&lt;p&gt;
MediaStream.getAudioTracks()
Возвращает список объектов, MediaStreamTrackхранящихся в MediaStreamобъекте, для которых kindустановлен атрибут audio. Порядок не определен и может меняться не только от одного браузера к другому, но и от одного вызова к другому.
&lt;/p&gt;

&lt;p&gt;
MediaStream.getTrackById()
Возвращает трек, идентификатор которого соответствует указанному в параметрах trackid. Если параметр не указан или трек с таким идентификатором не существует, возвращается null. Если несколько треков имеют одинаковый идентификатор, возвращается первый.
&lt;/p&gt;

&lt;p&gt;
MediaStream.getTracks()
Возвращает список всех MediaStreamTrackобъектов, хранящихся в MediaStreamобъекте, независимо от значения атрибута kind. Порядок не определен и может меняться не только от одного браузера к другому, но и от одного вызова к другому.
&lt;/p&gt;

&lt;p&gt;
MediaStream.getVideoTracks()
Возвращает список объектов, MediaStreamTrackхранящихся в MediaStreamобъекте, для которых kindустановлен атрибут «video». Порядок не определен и может меняться не только от одного браузера к другому, но и от одного вызова к другому.
&lt;/p&gt;

&lt;p&gt;
MediaStream.removeTrack()
Удаляет MediaStreamTrackданное в качестве аргумента. Если дорожка не является частью объекта MediaStream, ничего не происходит.
&lt;/p&gt;

&lt;p&gt;
События
addtrack
MediaStreamTrackВызывается при добавлении нового объекта.
&lt;/p&gt;

&lt;p&gt;
removetrack
Вызывается, когда MediaStreamTrackобъект был удален.
&lt;/p&gt;

&lt;p&gt;
active
Запускается при активации MediaStream.
&lt;/p&gt;

&lt;p&gt;
inactive
Запускается, когда MediaStream деактивируется.
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 22 Aug 2023 16:59:06 +0000</pubDate>
        </item>
        <item>
            <title>rest_api</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:api:rest_api&amp;rev=1760356448</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;руководство_по_rest_api&quot;&gt;Руководство по REST API&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e REST API&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e_\u043f\u043e_rest_api&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-51&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;что_такое_rest&quot;&gt;Что такое REST?&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Архитектура REST описывается шестью ограничениями. Эти ограничения, применительно к архитектуре, первоначально были представлены Роем Филдингом (Roy Fielding) в его докторской диссертации и определяют основы RESTful стиля.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 REST?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0442\u043e_\u0442\u0430\u043a\u043e\u0435_rest&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;52-480&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;шесть_ограничений&quot;&gt;Шесть ограничений:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;div class=&quot;stepbystep&quot;&gt;
&lt;button id=&quot;единый_интерфейс&quot; class=&quot;stepbystep_collapsible&quot;&gt;Единый интерфейс  &lt;/button&gt;
&lt;div class=&quot;stepbystep_content&quot;&gt;
&lt;p&gt;

Единый интерфейс определяет интерфейс между клиентами и серверами. Это упрощает и отделяет архитектуру, которая позволяет каждой части развиваться самостоятельно. Четыре принципа единого интерфейса:
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Основан на ресурсах&lt;/strong&gt;&lt;br/&gt;

Отдельные ресурсы определяются в запросе, для чего используется &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;, как идентификаторы ресурсов. Сами ресурсы концептуально отделены от представлений, которые возвращаются клиенту. Например, сервер не отправляет свою базу данных, а, скорее, некоторые &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;, XML или JSON, которые представляет некоторые записи в базе данных, например, на финском языке и в UTF-8, в зависимости от деталей запроса и реализации сервера.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Манипуляции над ресурсами через представления&lt;/strong&gt;&lt;br/&gt;

Когда пользователь имеет представление о ресурсе, в том числе о связанных метаданных, он имеет достаточно информации для изменения или удаления ресурса на сервере, если у него есть на это разрешение
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Самодокументируемые сообщения&lt;/strong&gt;&lt;br/&gt;

Каждое сообщение содержит достаточно информации для описания того, как его выполнить. Например, вызываемый парсер может описываться с помощью Internet media type (так же известным как MIME) Ответы также явно указывают на их способность кешировать.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Hypermedia as the Engine of Application State (HATEOAS)&lt;/strong&gt;&lt;br/&gt;

Клиенты предоставляют статус через содержимое body, параметры строки запроса, заголовки запросов и запрашиваемый &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; (имя ресурса). Это называется гипермедиа (или гиперссылки с гипертекстом)
&lt;/p&gt;

&lt;p&gt;
Наряду с приведенным выше описанием, HATEOAS также означает, что, в случае необходимости ссылки содержатся в теле ответа (или заголовках) для поддержки &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; извлечения самого объекта или запрошенных объектов. Позднее, мы затронем эту тему глубже.
&lt;/p&gt;

&lt;p&gt;
Единый интерфейс так же означает, что любой REST сервис должен обеспечивать его фундаментальный дизайн.

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;stepbystep&quot;&gt;
&lt;button id=&quot;отсутствие_состояний_&quot; class=&quot;stepbystep_collapsible&quot;&gt;Отсутствие состояний (Stateless)  &lt;/button&gt;
&lt;div class=&quot;stepbystep_content&quot;&gt;
&lt;p&gt;

Так как REST это акроним для REpresentational State Transfer, отсутствие состояний является важной чертой. Таким образом, это значит, что необходимое состояние для обработки запроса содержится в самом запросе, либо в рамках &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;, параметрах строки запроса, тела или заголовках. &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; уникально идентифицирует ресурс, и тело содержит состояние (или изменение состояния) этого ресурса. Затем, после того, как сервер завершит обработку, состояние или его часть(и) отдаётся обратно клиенту через заголовки, статус и тело ответа.
&lt;/p&gt;

&lt;p&gt;
Большинство из нас, кто был в этой отрасли, привыкли к программированию в контейнере, который даёт нам понятие «Сессия, которая поддерживает состояние нескольких HTTP запросов. В REST, клиент должен включать всю информацию для сервера для выполнения запроса, по необходимости повторно отправляя состояние, если это состояние должно охватывать несколько запросов. Отсутствие состояний обеспечивает большую масштабируемость, так как сервер не должен поддерживать или общаться через состояние сеанса. Кроме того, балансировщику нагрузки не придётся беспокоиться о связанности сессии и системы.
&lt;/p&gt;

&lt;p&gt;
Так в чём различие между состоянием и ресурсом? Состояние или состояние приложения, это то, что сервер заботится выполнить запрос для получения данных необходимых для текущей сессии или запроса. Ресурсное состояние, или ресурс, это данные, которые определяют представление ресурса, например, данные хранящиеся в базе данных. Рассмотрим состояние приложения как данные, которые могут варьироваться в зависимости от клиента и запроса. С другой стороны, состояние ресурсов постоянно по каждому клиенту, который запрашивает его.
&lt;/p&gt;

&lt;p&gt;
Каждый встречал проблему с кнопкой «Назад» в своём веб приложении, когда оно ведет себя по-разному в одной точке, потому что ожидались действия в определенном порядке? Такое происходит, когда нарушен принцип отсутствия состояний. Есть случаи, когда не соблюдается принцип отсутствия состояний, например, three-legged OAuth, ограничение скорости вызова &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; и т.д. Однако, приложите максимум усилий, чтобы состояние приложения не занимало несколько запросов к вашему сервису.

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;stepbystep&quot;&gt;
&lt;button id=&quot;кеширование_ответа_cach&quot; class=&quot;stepbystep_collapsible&quot;&gt;Кеширование ответа (Cacheable)  &lt;/button&gt;
&lt;div class=&quot;stepbystep_content&quot;&gt;
&lt;p&gt;

Как и в World Wide Web, клиент может кэшировать ответы. Таким образом, ответы явно или неявно определяют себя как кешируемые или нет, для предотвращения повторного использования клиентами устаревших или некорректных данных в ответ на дальнейшие запросы. Хорошо спроектированное кэширование частично или полностью устраняет некоторые клиент-серверные взаимодействия, способствуя дальнейшей масштабируемости и производительности.

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;stepbystep&quot;&gt;
&lt;button id=&quot;клиент-сервер_client-server&quot; class=&quot;stepbystep_collapsible&quot;&gt;Клиент-сервер (Client-Server)  &lt;/button&gt;
&lt;div class=&quot;stepbystep_content&quot;&gt;
&lt;p&gt;

Единый интерфейс отделяет клиентов от серверов. Разделение интерфейсов означает, что, например, клиенты не связаны с хранением данных, которое остаётся внутри каждого сервера, так что мобильность кода клиента улучшается. Серверы не связаны с интерфейсом пользователя или состоянием, так что серверы могут быть проще и масштабируемы. Серверы и клиенты могут быть заменяемы и разрабатываться независимо, пока интерфейс не изменяется.

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;stepbystep&quot;&gt;
&lt;button id=&quot;многоуровневая_систе�&quot; class=&quot;stepbystep_collapsible&quot;&gt;Многоуровневая система (Layered System)  &lt;/button&gt;
&lt;div class=&quot;stepbystep_content&quot;&gt;
&lt;p&gt;

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

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;stepbystep&quot;&gt;
&lt;button id=&quot;quot_код_по_требованию_qu&quot; class=&quot;stepbystep_collapsible&quot;&gt;&amp;quot;Код по требованию&amp;quot; (Code on Demand - опционально)  &lt;/button&gt;
&lt;div class=&quot;stepbystep_content&quot;&gt;
&lt;p&gt;

Серверы могут временно расширять или настраивать функциональность клиента, передавая ему логику, которую он может исполнять. Например, это могут быть скомпилированные Java-апплеты или клиентские скрипты на Javascript
&lt;/p&gt;

&lt;p&gt;
Соблюдая эти ограничения, и, таким образом, придерживаясь RESTful архитектуры, мы позволяем распределенной системе любого типа иметь такие свойства как: производительность, расширяемость, простота, обновляемость, понятность, портативность и надёжность.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Замечание&lt;/strong&gt; Единственным необязательным ограничением для RESTful архитектуры — это «код по требованию». Если сервис не проходит по любым другим условиям, то его совершенно точно нельзя назвать RESTful.

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0435\u0441\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0435\u0441\u0442\u044c_\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;481-11212&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;советы_по_rest_api&quot;&gt;Советы по REST API&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Будь то RESTful или нет (в соответствии с шестью ограничениями, описанными ранее), вот несколько рекомендованных REST концепций, которые помогут построить более хорошие и удобные сервисы:
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;используйте_http-глаголы_чтобы_ваши_запросы_имели_понятное_значение&quot;&gt;Используйте HTTP-глаголы, чтобы ваши запросы имели понятное значение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Пользователи &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; должны иметь возможность отправлять команды GET, POST, PUT и DELETE, что значительно повышает ясность того, что делает запрос.
&lt;/p&gt;

&lt;p&gt;
Как правило, четыре основных HTTP-глагола используются следующим образом:
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;get&quot;&gt;GET&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Прочитать конкретный ресурс (по идентификатору) или набор ресурсов
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;put&quot;&gt;PUT&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Обновить конкретный ресурс (по идентификатору) или набор ресурсов. Также может использоваться для создания определенного ресурса, если идентификатор ресурса известен заранее
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;delete&quot;&gt;DELETE&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Удалить конкретный ресурс по идентификатору
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;post&quot;&gt;POST&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Создать новый ресурс. Также универсальное действие для операций, которые не вписываются в другие категории
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;примечание&quot;&gt;Примечание&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
GET-запросы не должны изменять данные базовых ресурсов. При этом может выполняться отслеживание, приводящее к обновлению данных, но данные ресурса, идентифицированного данным &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;, не должны изменяться.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;давайте_ресурсам_продуманные_имена&quot;&gt;Давайте ресурсам продуманные имена&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Создание хорошего &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; — это на 80% искусство и на 20% наука. Создание иерархии осмысленных &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адресов относится к искусству. Рациональное наименование ресурсов (названия которых представляют собой просто &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-пути, такие как /customers/12345/orders) улучшает понимание того, что делает данный запрос.
&lt;/p&gt;

&lt;p&gt;
Подходящие названия ресурсов предоставляют контекст для запроса и делают &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; сервиса более понятным. Ресурсы должны просматриваться иерархически по их именам. Пользователям должна предлагаться удобная, легко понимаемая иерархия ресурсов для использования в их приложениях.
&lt;/p&gt;

&lt;p&gt;
Вот несколько простых правил для дизайна &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-пути (имени ресурса):
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Используйте идентификаторы в &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адресах, а не в строке запроса. Использование параметров строки запроса отлично подходит для фильтрации, но не для имен ресурсов&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Хорошо: /users/12345&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Плохо: /api?type=user&amp;amp;id=23&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адреса иерархичны, пользуйтесь этим для задания структуры ресурсов&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Дизайн сервиса должен быть ориентирован на ваших клиентов, а не на ваши данные&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Имена ресурсов должны быть существительными. Избегайте глаголов в именах ресурсов, это позволит сделать их яснее. Используйте методы HTTP, чтобы указать, какое действие выполняет запрос&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Используйте множественное число в соответствующих сегментах &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адресов, чтобы обеспечить согласованность &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; вашего &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; во всех HTTP-методах, применяя метафору коллекции&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Хорошо: /customers/33245/orders/8769/lineitems/1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Плохо: /customer/33245/order/8769/lineitem/1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Избегайте использования наборов слов в &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адресах (например, customer_list в качестве ресурса). Используйте множественное число для названий коллекций&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Хорошо: /customers&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Плохо: /customer_list&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Используйте строчные буквы в &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;, разделяя слова подчеркиванием («_») или дефисом (»-«). Некоторые серверы игнорируют регистр, поэтому лучше четко придерживаться нижнего регистра&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Старайтесь, чтобы &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адреса были как можно короче и содержали как можно меньше сегментов&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0432\u0435\u0442\u044b \u043f\u043e REST API&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0432\u0435\u0442\u044b_\u043f\u043e_rest_api&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;11213-16731&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;используйте_коды_http-ответов_для_указания_статуса&quot;&gt;Используйте коды HTTP-ответов для указания статуса&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Коды ответа являются частью спецификации HTTP. Для описания самых распространенных ситуаций существует большой набор HTTP-ответов.
&lt;/p&gt;

&lt;p&gt;
Поскольку наши RESTful сервисы следуют спецификации HTTP, наши веб-&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; должны возвращать коды состояний HTTP. Например, когда ресурс успешно создан с помощью запроса POST, &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; должен вернуть код состояния HTTP 201. Полный список возможных кодов состояния HTTP c подробным описанием доступен здесь
&lt;/p&gt;

&lt;p&gt;
Top 10 кодов состояния HTTP-ответа:
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ок&quot;&gt;200 ОК&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Код, указывающий на успешное выполнение запроса и чаще всего встречающийся на практике
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;created&quot;&gt;201 CREATED&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Ресурс успешно создан (через POST или PUT). Установите заголовок Location со ссылкой на вновь созданный ресурс (при POST). Тело ответа может быть как пустым, так и содержать что-то 204 NO CONTENT
Запрос выполнен успешно, но в теле ответа нет данных. Часто используется для операций DELETE и PUT
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;bad_request&quot;&gt;400 BAD REQUEST&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Общая ошибка, когда при выполнении запроса возникает недопустимое состояние. Примеры - ошибки проверки домена, отсутствующие данные и т.д.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;unauthorized&quot;&gt;401 UNAUTHORIZED&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Код ошибки для отсутствующего или недопустимого токена аутентификации
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;forbidden&quot;&gt;403 FORBIDDEN&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Код ошибки, когда пользователь не авторизован для выполнения операции или ресурс недоступен по какой-либо причине (например, ограничения по времени и т.п.)
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;not_found&quot;&gt;404 NOT FOUND&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Этот код используется, когда запрошенный ресурс не найден. Ресурс не существует, либо была ошибка 401 или 403, которую по соображениям безопасности сервис хочет скрыть
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;method_not_allowed&quot;&gt;405 METHOD NOT ALLOWED&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Используется для указания на то, что запрошенный &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адрес существует, но используемый HTTP-метод неприменим. Например, POST /users/12345, где &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; не поддерживает создание ресурсов таким образом (с предоставленным идентификатором). При возврате ошибки 405 должен быть установлен HTTP-заголовок Allow, указывающий на поддерживаемые методы HTTP. В примере выше заголовок выглядел бы как “Allow: GET, PUT, DELETE”
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;conflict&quot;&gt;409 CONFLICT&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Этот код ошибки отправляется всякий раз, когда выполнение запроса может привести к конфликту ресурсов. Примеры таких ситуаций - двойные записи, например, попытка создать двух клиентов с одинаковой информацией; удаление корневых объектов, когда не поддерживается каскадное удаление
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;internal_server_error&quot;&gt;500 INTERNAL SERVER ERROR&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Никогда не отправляйте этот код вручную. Это общая ошибка, когда на стороне сервера выбрасывается какое-то исключение. Этот код должен использоваться только для ошибок, которые пользователь не может устранить со своей стороны
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u0434\u044b HTTP-\u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0443\u0441\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435_\u043a\u043e\u0434\u044b_http-\u043e\u0442\u0432\u0435\u0442\u043e\u0432_\u0434\u043b\u044f_\u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f_\u0441\u0442\u0430\u0442\u0443\u0441\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;16732-21090&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;xml_и_json&quot;&gt;XML и JSON&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Если вы не работаете в строго стандартизированной и регулируемой отрасли, лучше поддерживать JSON. Но если вас ничто не сковывает, позвольте пользователям выбирать в каком формате получать данные — JSON или XML. У пользователей должна быть возможность переключаться между ними с помощью HTTP-заголовка Accept или просто изменив расширение с .xml на .json.
&lt;/p&gt;

&lt;p&gt;
Имейте в виду, что как только мы начинаем говорить о поддержке XML, мы начинаем говорить о валидации, пространствах имен и т.д. Если этого не требует ваша отрасль, избегайте поддержки всех этих усложнений. По крайней мере, вначале. А если в этом функционале нет острой необходимости, то всегда. JSON является простым, лаконичным и функциональным. Сделайте так, чтобы ваш XML выглядел так же, если это возможно.
&lt;/p&gt;

&lt;p&gt;
Другими словами, сделайте возвращаемый XML более похожим на JSON — простым и легко читаемым, без сведений о схеме и пространстве имен, содержащим только данные и ссылки. Если ваш XML будет более сложным, стоимость поддержки будет неоправданно большой. Если судить по нашему опыту — никто никогда не отвечает в формате XML. Обрабатывать XML слишком затратно.
&lt;/p&gt;

&lt;p&gt;
Обратите внимание, что JSON-Schema предлагает возможности по валидации XML, если вам все-таки нужен такой функционал.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;XML \u0438 JSON&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;xml_\u0438_json&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;21091-23316&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;создавайте_детальные_ресурсы&quot;&gt;Создавайте детальные ресурсы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Сначала гораздо проще создавать &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;, которые имитируют основной домен приложения или архитектуру базы данных вашей системы. В конце концов, вы захотите объединить сервисы, которые используют несколько основных ресурсов, чтобы избежать избыточности информации. Позже будет гораздо проще создать большие ресурсы из отдельных ресурсов, чем детальные ресурсы из более крупных составных ресурсов. Упростите себе задачу и начните с небольших, легко определяемых ресурсов, предоставив для них CRUD-функциональность. Ресурсы без лишней информации, ориентированные на конкретные ситуации, можно сделать позже.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435_\u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0435_\u0440\u0435\u0441\u0443\u0440\u0441\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;23317-24485&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;учитывайте_связность&quot;&gt;Учитывайте связность&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Одним из принципов REST является связность через ссылки. Хотя сервисы остаются полезными и без них, &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; становится более самоописательным, когда в ответе содержатся ссылки. По крайней мере, ссылка “на себя” информирует клиентов, как данные были или могут быть получены. Кроме того, используйте заголовок Location, который должен содержать ссылку на создание ресурса с помощью POST (или PUT). Для коллекций возвращайте в ответе сведения о том, что поддерживается пагинация, а также, как минимум, ссылки “первая”, “последняя”, “следующая” и “предыдущая”.
&lt;/p&gt;

&lt;p&gt;
Что касается форматов ссылок, то их существует довольно много.
&lt;/p&gt;

&lt;p&gt;
Спецификация HTTP веб-ссылок RFC5988 определяет ссылку следующим образом:
&lt;/p&gt;

&lt;p&gt;
Ссылка — это типизированное соединение между двумя ресурсами, идентифицируемыми интернационализированными идентификаторами ресурсов (IRI) [RFC3987]
&lt;/p&gt;

&lt;p&gt;
Ссылка состоит из:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; контекстного IRI&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; типа ссылки&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; целевого IRI&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; целевых атрибутов (опционально)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Ссылку можно рассматривать как утверждение вида {контекстный IRI} имеет ресурс {типа} в {целевом IRI}, который имеет {целевые атрибуты}.
&lt;/p&gt;

&lt;p&gt;
По меньшей мере, размещайте ссылки в HTTP-заголовке Link, как это рекомендовано в спецификации, или используйте JSON-представление данного стиля HTTP-ссылок (например, ссылки в стиле Atom, см. RFC4287). По мере того, как ваш &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; будет становиться более зрелым, вы сможете использовать более сложные стили ссылок, такие как HAL+JSON, Siren, Collection+JSON и/или JSON-LD и т.д.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0439\u0442\u0435 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0439\u0442\u0435_\u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;24486-27086&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;именование_ресурсов&quot;&gt;Именование ресурсов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Кроме правильного использования HTTP глаголов, именование ресурсов, вероятно, самая обсуждаемая и важная концепция для понимания во время создания понятного и легко используемого &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; для Web-сервиса. Когда ресурсы названы хорошо, &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; интуитивен и лёгок в использовании. Если же ресурсы названы плохо, тот же самый &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; может показаться неуклюжим и трудным в понимании и использовании. Ниже приведены несколько подсказок, как продолжить создавать &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; ресурсов для нового &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;.
&lt;/p&gt;

&lt;p&gt;
Фактически RESTful &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; - это всего лишь набор &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;, HTTP вызовов к этим &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; и некоторое количество представлений ресурсов в формате JSON и/или XML, многие из которых будут содержать перекрестные ссылки. За основу адресации берется покрытие уникальными идентификаторами ресурсов (&lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;) У каждого ресурса есть свой адрес или &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;: вся интересная информация, которую сервер может предоставить, представлена как ресурс. Ограничение однообразия интерфейса частично реализовано с помощью комбинаций &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; и HTTP глаголов и их использованием в соответствии со стандартами и конвенциями.
&lt;/p&gt;

&lt;p&gt;
Когда вы решаете, какие ресурсы будут в вашей системе, называйте их существительными, в противоположность глаголам, или действиям. Другими словами, &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; должен ссылаться на ресурс, а не на действие. Ещё один отличающий фактор - у существительных есть такие свойства, которых нет у глаголов.
&lt;/p&gt;

&lt;p&gt;
Ниже приведены примеры ресурсов:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пользователи системы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Курсы, в которых зарегистрирован студент.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; История сообщений пользователя.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пользователь, который подписан на другого пользователя.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пользователи, которые подписаны на другого пользователя.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Статья о верховой езде.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Каждый ресурс сервиса должен иметь хотя бы один &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;, идентифицирующий его. И лучше всего, когда этот &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; имеет смысл и адекватно описывает этот ресурс. &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; должны иметь предсказуемую, иерархическую структуру, чтобы увеличить понятность и, как следствие, юзабилити: предсказуемость означает, что они консистентны, иерархичность означает, что у данных есть структура взаимоотношений. Это не принцип и не ограничение REST, но это улучшает &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;.
&lt;/p&gt;

&lt;p&gt;
RESTful &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; пишут для потребителей. Названия и структура &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; должна передавать смысл этим потребителям. Очень часто трудно понять, где должны быть границы, но с пониманием ваших данных вы поймете и то, что имеет смысл возвращать как представление вашим клиентам. Проектируйте для клиентов, а не для ваших данных.
&lt;/p&gt;

&lt;p&gt;
Давайте предположим, что мы описываем систему с покупателями, заказами, отдельными позициями, продуктами и т. д. Рассмотрим &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;, включенные в описание ресурсов этого сервиса:
&lt;/p&gt;

&lt;p&gt;
Примеры
&lt;/p&gt;

&lt;p&gt;

&lt;style&gt;
  body_new {
    font-family: system-ui, -apple-system, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica Neue&quot;, &quot;Noto Sans&quot;, &quot;Liberation Sans&quot;, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
    color: #212529;
    background-color: #fff;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
  }

  .container_new {
    margin: 1rem;
    padding: 1.5rem;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
  }

  .tab_new {
    display: flex;
    flex-direction: column;
  }

  .tab-nav_new &gt; input[type=&quot;radio&quot;] {
    display: none;
  }

  .tab-content_new {
    display: none;
  }

  #content-1:has(~ .tab-nav_new &gt; #tab-btn-1:checked),
  #content-2:has(~ .tab-nav_new &gt; #tab-btn-2:checked),
  #content-3:has(~ .tab-nav_new &gt; #tab-btn-3:checked) {
    display: block;
  }

  .tab-nav_new {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #dee2e6;
    margin-bottom: 1rem;
    order: -1;
  }

  .tab-nav_new &gt; label {
    display: block;
    padding: 0.5rem 1rem;
    color: #0d6efd;
    text-decoration: none;
    background: 0 0;
    border: 1px solid transparent;
    margin-bottom: -1px;
    border-top-left-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
    -webkit-appearance: button;
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out;
  }

  .tab-nav_new &gt; input[type=&quot;radio&quot;]:checked + label {
    color: #000;
    background-color: #fff;
    border-color: #dee2e6 #dee2e6 #fff;
    cursor: default;
  }
&lt;/style&gt;
&lt;body_new&gt;
&lt;div class=&quot;container1_new&quot;&gt;
  &lt;div class=&quot;tab_new&quot;&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-1&quot;&gt;
      Чтобы создать нового покупателя в системе мы используем:&lt;/br&gt;&lt;/br&gt;
POST http://www.example.com/customers&lt;/br&gt;
&lt;/br&gt;
Чтобы получить информацию о покупателе с ID# 33245:&lt;/br&gt;&lt;/br&gt;
GET http://www.example.com/customers/33245 Тот же URI мы используем для PUT и DELETE, чтобы обновлять и удалять, соответственно.&lt;/br&gt;
&lt;/br&gt;
Ниже предложены URI для продуктов:&lt;/br&gt;&lt;/br&gt;
POST http://www.example.com/products для создания нового продукта.&lt;/br&gt;
&lt;/br&gt;&lt;/br&gt;
GET|PUT|DELETE http://www.example.com/products/66432&lt;/br&gt;
для чтения, обновления, удаления продукта с ID# 66432, соответственно.&lt;/br&gt;
&lt;/br&gt;
Теперь становится весело… Как насчёт создания нового заказа у покупателя? Один вариант - POST http://www.example.com/orders. Это может работать для создания заказа, но здесь, пожалуй, не учитывается покупатель.&lt;/br&gt;
&lt;/br&gt;
Поскольку мы хотим создать заказ для покупателя, (заметьте связь), этот URI, очевидно, не так интуитивен, как мог бы быть. Очевидно, что следующий URI предлагает большую ясность: POST http://www.example.com/customers/33245/orders Теперь мы знаем, что создаём заказ для покупателя с ID# 33245.&lt;/br&gt;
&lt;/br&gt;
Что же вернет следующее?&lt;/br&gt;&lt;/br&gt;
GET http://www.example.com/customers/33245/orders&lt;/br&gt;
Вероятно, список заказов покупателя #33245. Заметьте: мы можем не поддерживать DELETE или PUT для этого URL, поскольку он оперирует коллекцией.&lt;/br&gt;
&lt;/br&gt;
Теперь, продолжая концепцию иерархичности, как насчёт следующего URI?&lt;/br&gt;&lt;/br&gt;
POST http://www.example.com/customers/33245/orders/8769/lineitems&lt;/br&gt;
Это может добавлять отдельную позицию в заказ #8769 (который принадлежит покупателю #33245). Точно! GET на этот URI вернет все отдельные позиции данного заказа. Как бы то ни было, если отдельные позиции нельзя рассматривать только в контексте покупателя, или их можно рассматривать вне его контекста, мы можем предложить POST www.example.com/orders/8769/lineitems.&lt;/br&gt;
&lt;/br&gt;
Наряду с этими строками, поскольку может быть несколько URI для заданного ресурса, мы также можем предложить GET http://www.example.com/orders/8769, который возвращает информацию о заказе по его ID без указания ID покупателя&lt;/br&gt;
&lt;/br&gt;
Спускаясь глубже по иерархии:&lt;/br&gt;&lt;/br&gt;
GET http://www.example.com/customers/33245/orders/8769/lineitems/1&lt;/br&gt;
Может возвращать только первую отдельную позицию в заказе.&lt;/br&gt;
&lt;/br&gt;
К этому моменту вы уже можете видеть, как работает концепция иерархичности. Нет никаких жёстких правил, убедитесь только, что предложенная структура понятна потребителю ваших сервисов. Как и все в ремесле разработки ПО, именование критично для успеха.&lt;/br&gt;
&lt;/br&gt;
Взгляните на некоторые широко используемые API, чтобы приобрести навык проектирования и используйте интуицию своих коллег, чтобы улучшить URI ресурсов вашего API. Ниже приведены некоторые примеры API:&lt;/br&gt;
&lt;/br&gt;&lt;/br&gt;
  * Twitter: https://dev.twitter.com/docs/api&lt;/br&gt;
  * Facebook: http://developers.facebook.com/docs/reference/api/&lt;/br&gt;
  * LinkedIn: https://developer.linkedin.com/apis&lt;/br&gt;
    &lt;/div&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-2&quot;&gt;
      Пока мы обсуждали некоторые примеры подходящих названий для ресурсов, иногда более информативно увидеть некоторые анти-паттерны. Ниже представлены плохие примеры RESTful URI ресурсов, которые были замечены в &quot;дикой природе.&quot; Никогда так не делайте.
&lt;/br&gt;&lt;/br&gt;
Прежде всего, часто сервисы используют один URI, чтобы определить интерфейс, используя строковые параметры jquery для определения операции, которую нужно выполнить и/или HTTP глагол. Например, чтобы обновить данные покупателя с ID 12345 и получить их в формате JSON может быть использован такой запрос:
&lt;/br&gt;&lt;/br&gt;
GET http://api.example.com/services?op=update_customer&amp;id=12345&amp;format=json
&lt;/br&gt;&lt;/br&gt;
Теперь вы не станете так делать. Несмотря на то, что узел URL-адреса &#039;services&#039; — существительное, он не является самодокументируемым, поскольку иерархия URI не одна и та же для всех запросов. Кроме того, он использует глагол GET, хотя выполняет обновление. Это контринтуитивно, опасно и вызывает много боли у клиентов.
&lt;/br&gt;&lt;/br&gt;
Вот другой пример, который тоже выполняет обновление данных о покупателе:
&lt;/br&gt;&lt;/br&gt;
GET http://api.example.com/update_customer/12345
&lt;/br&gt;&lt;/br&gt;
И его злобный двойник:
&lt;/br&gt;&lt;/br&gt;
GET http://api.example.com/customers/12345/update
&lt;/br&gt;&lt;/br&gt;
Вы часто можете увидеть последний запрос в сервисах других разработчиков. Заметим, что разработчики стараются создавать RESTful ресурсы и кое-где заметен прогресс. Но лучше, когда вы можете увидеть глагол в URL. Заметьте также, что нам не нужно использовать фразу &#039;update&#039; в URL, потому что мы можем довериться HTTP глаголу, чтобы сообщить об этой операции. Проясним, что следующий URL избыточен:
&lt;/br&gt;&lt;/br&gt;
PUT http://api.example.com/customers/12345/update
&lt;/br&gt;&lt;/br&gt;
И с PUT, и с &#039;update&#039; в запросе, мы рискуем запутать потребителей нашего сервиса. Является ли &#039;update&#039; ресурсом? Мы потратим некоторое время на выяснение этого. Я уверен, вы понимаете.
    &lt;/div&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-3&quot;&gt;
      Давайте поговорим о споре между плюрализаторами и &quot;сингуларизаторами&quot;. Вы не слышали об этом споре? Он существует. Соответственно, всё сводится в следующему вопросу:
&lt;/br&gt;&lt;/br&gt;
Должны ли узлы URI в иерархии называться существительными в единственном или множественном числе? Например, как должен выглядеть URI для получения данных о покупателе:
&lt;/br&gt;&lt;/br&gt;
GET http://www.example.com/customer/33245 или GET http://www.example.com/customers/33245
&lt;/br&gt;&lt;/br&gt;
С обеих точек зрения приведены хорошие аргументы, но общепринятой практикой является плюрализация узлов, чтобы обеспечить согласованность для всех HTTP методов. Этот подход обоснован тем, что покупатели считаются коллекцией внутри сервиса и ID (например, 33245) ссылается на одного покупателя из коллекции.
&lt;/br&gt;&lt;/br&gt;
Используя это правило, получим следующие URI с множеством узлов (выделено мной):
&lt;/br&gt;&lt;/br&gt;
GET http://www.example.com/customers/33245/orders/8769/lineitems/1
&lt;/br&gt;&lt;/br&gt;
ноды &#039;customers&#039;, &#039;orders&#039;, и &#039;lineitems&#039; использованы во множественном числе.
&lt;/br&gt;&lt;/br&gt;
Это подразумевает, что вам нужно только два базовых URL для каждой корневой сущности. Один для создания ресурса внутри коллекции и другой для чтения, обновления и удаления ресурса по его идентификатору. Например, для создания (используя покупателей)
&lt;/br&gt;&lt;/br&gt;
POST http://www.example.com/customers
&lt;/br&gt;&lt;/br&gt;
А для чтения, обновления и удаления следующий:
&lt;/br&gt;&lt;/br&gt;
GET|PUT|DELETE http://www.example.com/customers/{id}
&lt;/br&gt;&lt;/br&gt;
Как было замечено ранее, у ресурса может быть несколько URI, но для минимальных возможностей CRUD&#039;а достаточно всего двух.
&lt;/br&gt;&lt;/br&gt;
Вы можете спросить: есть ли ситуации, когда плюрализация не имеет смысла. Да, фактически есть. Когда в системе не требуется коллекция. Другими словами, приемлем singleton ресурс. Например, если есть единственный всеобъемлющий конфигурационный ресурс, вы можете использовать существительное в единственном числе, чтобы это отразить:
&lt;/br&gt;&lt;/br&gt;
GET|PUT|DELETE http://www.example.com/configuration
&lt;/br&gt;&lt;/br&gt;
Обратите внимание на отсутствие ID и использования глагола POST. Вы скажете, что если бы у каждого покупателя могла быть только одна конфигурация, тогда URL мог бы быть таким:
&lt;/br&gt;&lt;/br&gt;
GET|PUT|DELETE http://www.example.com/customers/12345/configuration
&lt;/br&gt;&lt;/br&gt;
Снова нет никакого ID для конфигурации и нет использования глагола POST. Хотя я уверен, что в обоих случаях можно утверждать, что использование POST является допустимым. Ладно, хорошо.
    &lt;/div&gt;
    &lt;div class=&quot;tab-nav_new&quot;&gt;
      &lt;input checked id=&quot;tab-btn-1&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-1&quot;&gt;Примеры URI ресурсов&lt;/label&gt;
      &lt;input id=&quot;tab-btn-2&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-2&quot;&gt;Плохие примеры именования ресурсов&lt;/label&gt;
      &lt;input id=&quot;tab-btn-3&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-3&quot;&gt;Множественность&lt;/label&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/body_new&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435_\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;27087-45764&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;что_такое_идемпотентность&quot;&gt;Что такое Идемпотентность?&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0418\u0434\u0435\u043c\u043f\u043e\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0442\u043e_\u0442\u0430\u043a\u043e\u0435_\u0438\u0434\u0435\u043c\u043f\u043e\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;45765-45824&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;идемпотентность&quot;&gt;Идемпотентность&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Идемпотентность - это забавное слово, которое часто выбивает людей из колеи. Идемпотентность кажется иногда запутанной концепцией, по крайней мере, если судить по академическому определению.
&lt;/p&gt;

&lt;p&gt;
С точки зрения RESTful-сервиса, операция (или вызов сервиса) идемпотентна тогда, когда клиенты могут делать один и тот же вызов неоднократно при одном и том же результате, работая как “сеттер” в языке программирования. Другими словами, создание большого количества идентичных запросов имеет такой же эффект, как и один запрос. Заметьте, что в то время, как идемпотентные операции производят один и тот же результат на сервере (побочные эффекты), ответ сам по себе может не быть тем же самым (например, состояние ресурса может измениться между запросами).
&lt;/p&gt;

&lt;p&gt;
Методы PUT и DELETE по определению идемпотентны. Тем не менее есть один нюанс с методом DELETE. Проблема в том, что успешный DELETE-запрос возвращает статус 200 (OK) или 204 (No Content), но для последующих запросов будет всё время возвращать 404 (Not Found), если только сервис не сконфигурирован так, чтобы “помечать” ресурс как удалённый без его фактического удаления. Как бы то ни было, когда сервис на самом деле удаляет ресурс, следующий вызов не найдёт этот ресурс и вернет 404. Состояние на сервере после каждого вызова DELETE то же самое, но ответы разные.
&lt;/p&gt;

&lt;p&gt;
Методы GET, HEAD, OPTIONS и TRACE определены как безопасные, что также делает их идемпотентными. Прочитайте секцию о безопасности ниже.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u0434\u0435\u043c\u043f\u043e\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0434\u0435\u043c\u043f\u043e\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;45825-48419&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;безопасность&quot;&gt;Безопасность&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Некоторые HTTP-методы (например: HEAD, GET, OPTIONS и TRACE) определены как безопасные, это означает, что они предназначены только для получения информации и не должны изменять состояние сервера. Другими словами, они не должны иметь побочных эффектов, за исключением безобидных эффектов, таких как: логирование, кеширование, показ баннерной рекламы или увеличение веб-счетчика. Созданный произвольный GET-запрос, который не учитывает контекст состояния приложения, следует считать безопасным.
&lt;/p&gt;

&lt;p&gt;
Упрощенно, безопасность означает, что вызов метода не имеет побочных эффектов. Следовательно, такие (безопасные) запросы клиенты могут безопасно совершать неоднократно, не опасаясь изменить состояние сервера. Это означает, что сервисы должны придерживаться определения безопасности для GET, HEAD, OPTIONS и TRACE операций. Не выполнения этого свойства может приводить в заблуждение потребителя сервиса, а также вызвать проблемы для веб-кеширования, поисковых систем и других автоматизированных агентов, которые непреднамеренно будут изменять состояние сервера.
&lt;/p&gt;

&lt;p&gt;
По определению, безопасные операции идемпотентны, так как они приводят к одному и тому же результату на сервере.
&lt;/p&gt;

&lt;p&gt;
Безопасные методы реализованы как операции только для чтения. Однако безопасность не означает, что сервер должен возвращать тот же самый результат каждый раз.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;48420-50853&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;использование_http_методов_для_создания_restful_сервисов&quot;&gt;Использование HTTP методов для создания RESTful сервисов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
HTTP глаголы составляют основную часть “единого интерфейса”, ограничивающего и предоставляющего возможность осуществлять действия над существительным-ресурсом.Основными или наиболее часто используемыми HTTP глаголами (или методами, как их иногда называют) являются POST, GET, PUT, и DELETE. Они соответствуют операциям создания чтения, обновления и удаления (или в совокупности - CRUD). Есть еще и другие глаголы они используются реже. Из реже используемых методов выделяются OPTIONS и HEAD
&lt;/p&gt;

&lt;p&gt;
Ниже приведена сводная таблица рекомендаций по возвращению значений при использовании основных HTTP глаголов в сочетании с ресурсами &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit14&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;HTTP Глагол	&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Ресурс (например /customers)	&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Экземпляр (например /customers/{id})&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;GET&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;	200 (OK), перечень customers. Используется постраничная навигация, сортировка и фильтрация для больших списков.&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;	200 (OK), конкретный customer. 404 (Not Found), в случае отсутствия экземпляра с указанным ID или если он не корректен (а также, если клиенту непозволительно знать о наличии данного экземпляра).&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;PUT&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;	404 (Not Found), если была попытка обновить/заменить экземпляр во всей коллекции.&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;	200 (OK) или 204 (No Content). 404 (Not Found), в случае отсутствия экземпляра с указанным ID или если он не корректен (а также, если клиенту непозволительно знать о наличии данного экземпляра).&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;PATCH&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;	405 (Method Not Allowed), если не попытка обновить/заменить всю коллекцию.&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;	200 (OK) или 204 (No Content). 404 (Not Found), в случае отсутствия экземпляра с указанным ID или если он не корректен (а также, если клиенту непозволительно знать о наличии данного экземпляра).&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;POST&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;	201 (Created), заголовок &amp;#039;Location&amp;#039; ссылается на /customers/{id}, где ID - идентификатор нового экземпляра.&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;	404 (Not Found).&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DELETE&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;	404 (Not Found), если вы хотите удалить всю коллекцию, что крайне не желательно.&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;	200 (OK) или 204 (No Content). 404 (Not Found), в случае отсутствия экземпляра с указанным ID или если он не корректен (а также, если клиенту непозволительно знать о наличии данного экземпляра).&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;52079-54272&amp;quot;} --&gt;
&lt;p&gt;
Ниже приводится более подробное обсуждение основных методов HTTP.
&lt;/p&gt;

&lt;p&gt;

&lt;style&gt;
  body_new {
    font-family: system-ui, -apple-system, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica Neue&quot;, &quot;Noto Sans&quot;, &quot;Liberation Sans&quot;, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
    color: #212529;
    background-color: #fff;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
  }

  .container_new {
    margin: 1rem;
    padding: 1.5rem;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
  }

  .tab_new {
    display: flex;
    flex-direction: column;
  }

  .tab-nav_new &gt; input[type=&quot;radio&quot;] {
    display: none;
  }

  .tab-content_new {
    display: none;
  }

  #content-1:has(~ .tab-nav_new &gt; #tab-btn-1:checked),
  #content-2:has(~ .tab-nav_new &gt; #tab-btn-2:checked),
  #content-3:has(~ .tab-nav_new &gt; #tab-btn-3:checked),
  #content-4:has(~ .tab-nav_new &gt; #tab-btn-4:checked),
  #content-5:has(~ .tab-nav_new &gt; #tab-btn-5:checked) {
    display: block;
  }

  .tab-nav_new {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #dee2e6;
    margin-bottom: 1rem;
    order: -1;
  }

  .tab-nav_new &gt; label {
    display: block;
    padding: 0.5rem 1rem;
    color: #0d6efd;
    text-decoration: none;
    background: 0 0;
    border: 1px solid transparent;
    margin-bottom: -1px;
    border-top-left-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
    -webkit-appearance: button;
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out;
  }

  .tab-nav_new &gt; input[type=&quot;radio&quot;]:checked + label {
    color: #000;
    background-color: #fff;
    border-color: #dee2e6 #dee2e6 #fff;
    cursor: default;
  }
&lt;/style&gt;
&lt;body_new&gt;
&lt;div class=&quot;container1_new&quot;&gt;
  &lt;div class=&quot;tab_new&quot;&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-1&quot;&gt;
      HTTP метод GET используется для получения (или чтения) представления ресурса. В случае „удачного” (или не содержащего ошибок) адреса, GET возвращается представление ресурса в формате XML или JSON в сочетании с кодом состояния HTTP 200 (OK). В случае наличия ошибок обычно возвращается код 404 (NOT FOUND) или 400 (BAD REQUEST).
&lt;/br&gt;&lt;/br&gt;
В соответствии спецификации HTTP, GET (так же как и HEAD) запросы используются только для чтения данных, не изменяя их. Таким образом, при соблюдении данного соглашения, они считаются безопасными. То есть они могут использоваться без риска изменения данных, вне зависимости от того, один раз данные были получены, или же 10, или ни разу вовсе. GET (а также HEAD) запросы являются идемпотентными (тождественными), что подразумевает получение идентичных данных при использовании одних и тех же запросов (как при единичном обращении, так и при многократном).
&lt;/br&gt;&lt;/br&gt;
Не стоит использовать GET для небезопасных операций над данными, при данном запросе они не должны быть модифицированы.
&lt;/br&gt;&lt;/br&gt;
Примеры:
&lt;/br&gt;&lt;/br&gt;
GET http://www.example.com/customers/12345&lt;/br&gt;
GET http://www.example.com/customers/12345/orders&lt;/br&gt;
GET http://www.example.com/buckets/sample&lt;/br&gt;&lt;/br&gt;
    &lt;/div&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-2&quot;&gt;
      Метод PUT обычно используется для предоставления возможности обновления ресурса. Тело запроса при отправке PUT-запроса к существующему ресурсу URI должно содержать обновленные данные оригинального ресурса (полностью, или только обновляемую часть).
&lt;/br&gt;&lt;/br&gt;
Кроме того, PUT может быть использован для создания ресурса, в случае, когда идентификатор ресурса выбирает клиент, а не сервер. Или, если перефразировать — при отправке PUT запроса по адресу, содержащему не существующий идентификатор ресурса. Опять же, стоит помнить, что тело запроса должно быть модификацией оригинального ресурса. Многие считают это запутанным и непонятным. Соответственно, данную возможность метода PUT стоит использовать с осторожностью. Да и при крайней необходимости.
&lt;/br&gt;&lt;/br&gt;
Для создания новых экземпляров ресурса предпочтительнее использование POST запроса. В данном случае, при создании экземпляра будет предоставлен корректный идентификатор экземпляра ресурса в возвращённых данных об экземпляре.
&lt;/br&gt;&lt;/br&gt;
При успешном обновлении посредством выполнения PUT запроса возвращается код 200 (или 204 если не был передан какой-либо контент в теле ответа). Если PUT используется для создания экземпляра — обычно возвращают HTTP код 201 при успешном создании. Возвращать данные в ответ на запрос необязательно. Также не обязательно возвращать ссылку на экземпляр ресурса посредством заголовка `Location` по причине того, что клиент и так обладает идентификатором экземпляра ресурса.
&lt;/br&gt;&lt;/br&gt;
PUT не безопасная операция, так как вследствие её выполнения происходит модификация (или создание) экземпляров ресурса на стороне сервера, но этот метод идемпотентен. Другими словами, создание или обновление ресурса посредством отправки PUT запроса — ресурс не исчезнет, будет располагаться там же, где и был при первом обращении, а также, многократное выполнение одного и того же PUT запроса не изменит общего состояния системы (за исключением первого раза, но это обычно опускают из рассмотрения)
&lt;/br&gt;&lt;/br&gt;
Если PUT запрос используется для увеличения счётчика просмотра конкретного ресурса — данный запрос уже не считается идемпотентным. Иногда такое происходит и считается достаточным задокументировать тот факт, что вызов не идемпотентен. Однако строго рекомендуется выдерживать идемпотентность PUT запроса.
&lt;/br&gt;&lt;/br&gt;
Примеры:
&lt;/br&gt;&lt;/br&gt;
PUT http://www.example.com/customers/12345&lt;/br&gt;
PUT http://www.example.com/customers/12345/orders/98765&lt;/br&gt;
PUT http://www.example.com/buckets/secret_stuff&lt;/br&gt;&lt;/br&gt;
    &lt;/div&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-3&quot;&gt;
      PATCH запрос используется для **модификации** ресурса. PATCH запрос должен содержать только изменяемые данные ресурса, а не все его данные.
&lt;/br&gt;&lt;/br&gt;
Это напоминает работу PUT запроса, но в теле запроса содержится набор инструкций описывающих как должен быть изменён ресурс, расположенный на сервере, для формирования новой версии. Это означает, что тело PATCH запроса должно содержать не просто изменения ресурса, а представлять из себя описание на языке внесения изменений (patch language) таких как JSON Patch или XML Patch.
&lt;/br&gt;&lt;/br&gt;
PATCH запрос ни является безопасным, ни идемпотентным. Однако PATСH запрос может быть сформирован таким образом чтобы быть идемпотентным, что в свою очередь помогает предотвратить негативные последствия от коллизий между двумя PATCH запросами к одному и тому же ресурсу в один и тот же промежуток времени. Коллизии нескольких PATCH запросов могут быть более опасными чем коллизии PUT запросов, потому что некоторым форматам изменений необходимо выполняться от известной базовой-точки или ресурс будет поврежден. Клиенты, использующие такой тип внесения изменений, должны использовать условный запрос на проверку изменения ресурса с момента последнего доступа клиента к нему. Например клиент может использовать ETag в заголовке If-Match в самом PATСH запросе.
&lt;/br&gt;&lt;/br&gt;
Примеры:
&lt;/br&gt;&lt;/br&gt;
PATCH http://www.example.com/customers/12345&lt;/br&gt;
PATCH http://www.example.com/customers/12345/orders/98765&lt;/br&gt;
PATCH http://www.example.com/buckets/secret_stuff&lt;/br&gt;&lt;/br&gt;
    &lt;/div&gt;
        &lt;div class=&quot;tab-content_new&quot; id=&quot;content-4&quot;&gt;
      POST запрос наиболее часто используется для создания новых ресурсов. На практике он используется для создания вложенных ресурсов. Другими словами, при создании нового ресурса, POST запрос отправляется к родительскому ресурсу и, таким образом, сервис берет на себя ответственность на установление связи создаваемого ресурса с родительским ресурсом, назначение новому ресурсу ID и т.п.
&lt;/br&gt;&lt;/br&gt;
При успешном создании ресурса возвращается HTTP код 201, а также в заголовке `Location` передается адрес созданного ресурса.
&lt;/br&gt;&lt;/br&gt;
POST не является безопасным или идемпотентным запросом. Потому рекомендуется его использование для не идемпотентных запросов. В результате выполнения идентичных POST запросов предоставляются сильно похожие, но не идентичные данные.
&lt;/br&gt;&lt;/br&gt;
Примеры:
&lt;/br&gt;&lt;/br&gt;
POST http://www.example.com/customers&lt;/br&gt;
POST http://www.example.com/customers/12345/orders&lt;/br&gt;&lt;/br&gt;
    &lt;/div&gt;
        &lt;div class=&quot;tab-content_new&quot; id=&quot;content-5&quot;&gt;
      DELETE запрос крайне прост для понимания. Он используется для удаления ресурса, идентифицированного конкретным URI (ID).
&lt;/br&gt;&lt;/br&gt;
При успешном удалении возвращается 200 (OK) код HTTP, совместно с телом ответа, содержащим данные удалённого ресурса (отрицательно сказывается на экономии трафика) или завернутые ответы (Смотрите &quot;Возвращаемые данные&quot;). Также возможно использование HTTP кода 204 (NO CONTENT) без тела ответа.
&lt;/br&gt;&lt;/br&gt;
Согласно спецификации HTTP, DELETE запрос идемпотентен. Если вы выполняете DELETE запрос к ресурсу, он удаляется. Повторный DELETE запрос к ресурсу закончится также: ресурс удалён. Если DELETE запрос используется для декремента счётчика, DELETE запрос не является идемпотентным. Используйте POST для неидемпотентных операций.
&lt;/br&gt;&lt;/br&gt;
Тем не менее, существует предостережение об идемпотентности DELETE. Повторный DELETE запрос к ресурсу часто сопровождается 404 (NOT FOUND) кодом HTTP по причине того, что ресурс уже удалён (например из базы данных) и более не доступен. Это делает DELETE операцию не идемпотентной, но это общепринятый компромисс на тот случай, если ресурс был удалён из базы данных, а не помечен, как удалённый.
&lt;/br&gt;&lt;/br&gt;
Примеры:
&lt;/br&gt;&lt;/br&gt;
DELETE http://www.example.com/customers/12345&lt;/br&gt;
DELETE http://www.example.com/customers/12345/orders&lt;/br&gt;
DELETE http://www.example.com/bucket/sample&lt;/br&gt;
    &lt;/div&gt;
    &lt;div class=&quot;tab-nav_new&quot;&gt;
      &lt;input checked id=&quot;tab-btn-1&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-1&quot;&gt;GET&lt;/label&gt;
      &lt;input id=&quot;tab-btn-2&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-2&quot;&gt;PUT&lt;/label&gt;
      &lt;input id=&quot;tab-btn-3&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-3&quot;&gt;PATCH&lt;/label&gt;
      &lt;input id=&quot;tab-btn-4&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-4&quot;&gt;POST&lt;/label&gt;
      &lt;input id=&quot;tab-btn-5&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-5&quot;&gt;DELETE&lt;/label&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/body_new&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 HTTP \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f RESTful \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435_http_\u043c\u0435\u0442\u043e\u0434\u043e\u0432_\u0434\u043b\u044f_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f_restful_\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;50854-69688&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://restapitutorial.ru/&quot; class=&quot;urlextern&quot; title=&quot;https://restapitutorial.ru/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;69689-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 13 Oct 2025 11:54:08 +0000</pubDate>
        </item>
        <item>
            <title>web_components</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:api:web_components&amp;rev=1692730728</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;веб-компоненты&quot;&gt;Веб-компоненты&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Веб-компоненты — это набор различных технологий, позволяющих создавать многократно используемые настраиваемые элементы — с их функциональностью, изолированной от остального кода — и использовать их в своих веб-приложениях.
&lt;/p&gt;

&lt;p&gt;
Концепции и использование
Как разработчики, мы все знаем, что повторное использование кода — это хорошая идея. Традиционно это было не так просто для пользовательских структур разметки — подумайте о сложном &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; (и связанном с ним стиле и сценарии), который вам иногда приходилось писать для отображения пользовательских элементов управления пользовательского интерфейса, и о том, как их многократное использование может превратить вашу страницу в беспорядок. если вы не будете осторожны.
&lt;/p&gt;

&lt;p&gt;
Веб-компоненты призваны решить такие проблемы — они состоят из трех основных технологий, которые можно использовать вместе для создания универсальных пользовательских элементов с инкапсулированной функциональностью, которые можно повторно использовать где угодно, не опасаясь коллизий кода.
&lt;/p&gt;

&lt;p&gt;
Пользовательские элементы
Набор &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;-интерфейсов JavaScript, которые позволяют вам определять пользовательские элементы и их поведение, которые затем можно использовать по желанию в вашем пользовательском интерфейсе.
&lt;/p&gt;

&lt;p&gt;
Тень ДОМ
Набор &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;-интерфейсов JavaScript для прикрепления инкапсулированного «теневого» дерева DOM к элементу, который отображается отдельно от основного документа DOM, и управления соответствующей функциональностью. Таким образом, вы можете сохранить свойства элемента в тайне, чтобы их можно было использовать в сценариях и стилях, не опасаясь столкновения с другими частями документа.
&lt;/p&gt;

&lt;p&gt;
&lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-шаблоны
Элементы &amp;lt;template&amp;gt;и &amp;lt;slot&amp;gt;позволяют писать шаблоны разметки, которые не отображаются на отображаемой странице. Затем их можно повторно использовать несколько раз в качестве основы структуры пользовательского элемента.
&lt;/p&gt;

&lt;p&gt;
Базовый подход к реализации веб-компонента обычно выглядит примерно так:
&lt;/p&gt;

&lt;p&gt;
Создайте класс, в котором вы указываете функциональность веб-компонента, используя синтаксис класса .
Зарегистрируйте новый пользовательский элемент с помощью CustomElementRegistry.define()метода, передав ему имя определяемого элемента, класс или функцию, в которой указаны его функциональные возможности, и, необязательно, элемент, от которого он наследуется.
При необходимости прикрепите теневой DOM к пользовательскому элементу с помощью Element.attachShadow()метода. Добавьте дочерние элементы, прослушиватели событий и т. д. в теневой DOM, используя обычные методы DOM.
При необходимости определите шаблон &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; с помощью &amp;lt;template&amp;gt;и &amp;lt;slot&amp;gt;. Снова используйте обычные методы DOM, чтобы клонировать шаблон и прикрепить его к теневой модели DOM.
Используйте свой пользовательский элемент в любом месте на странице, как и любой обычный элемент &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;.
Путеводители
Использование пользовательских элементов
Руководство, показывающее, как использовать функции пользовательских элементов для создания простых веб-компонентов, а также изучение обратных вызовов жизненного цикла и некоторых других более сложных функций.
&lt;/p&gt;

&lt;p&gt;
Использование теневого DOM
Руководство, в котором рассматриваются основы теневого DOM, показывающие, как прикрепить теневой DOM к элементу, добавить его в дерево теневого DOM, стилизовать его и многое другое.
&lt;/p&gt;

&lt;p&gt;
Использование шаблонов и слотов
Руководство, показывающее, как определить многократно используемую структуру &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; с помощью элементов &amp;lt;template&amp;gt;и &amp;lt;slot&amp;gt;, а затем использовать эту структуру в веб-компонентах.
&lt;/p&gt;

&lt;p&gt;
Ссылка
Пользовательские элементы
CustomElementRegistry
Содержит функциональные возможности, связанные с пользовательскими элементами, в первую очередь CustomElementRegistry.define()метод, используемый для регистрации новых пользовательских элементов, чтобы их можно было затем использовать в вашем документе.
&lt;/p&gt;

&lt;p&gt;
Window.customElements
Возвращает ссылку на CustomElementRegistryобъект.
&lt;/p&gt;

&lt;p&gt;
Обратные вызовы жизненного цикла
Специальные функции обратного вызова, определенные внутри определения класса пользовательского элемента, которые влияют на его поведение:
&lt;/p&gt;

&lt;p&gt;
connectedCallback()
Вызывается, когда пользовательский элемент впервые подключается к DOM документа.
&lt;/p&gt;

&lt;p&gt;
disconnectedCallback()
Вызывается, когда пользовательский элемент отключается от DOM документа.
&lt;/p&gt;

&lt;p&gt;
adoptedCallback()
Вызывается, когда пользовательский элемент перемещается в новый документ.
&lt;/p&gt;

&lt;p&gt;
attributeChangedCallback()
Вызывается при добавлении, удалении или изменении одного из атрибутов пользовательского элемента.
&lt;/p&gt;

&lt;p&gt;
Расширения для создания пользовательских встроенных элементов
Определены следующие расширения:
&lt;/p&gt;

&lt;p&gt;
Глобальный isатрибут &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;
Позволяет указать, что стандартный элемент &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; должен вести себя как зарегистрированный настраиваемый встроенный элемент.
&lt;/p&gt;

&lt;p&gt;
Вариант «есть» Document.createElement()метода
Позволяет создать экземпляр стандартного &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-элемента, который ведет себя как заданный зарегистрированный настраиваемый встроенный элемент.
&lt;/p&gt;

&lt;p&gt;
Псевдоклассы &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;
Псевдоклассы, относящиеся конкретно к пользовательским элементам:
&lt;/p&gt;

&lt;p&gt;
:defined
Соответствует любому определенному элементу, включая встроенные элементы и пользовательские элементы, определенные с помощью CustomElementRegistry.define().
&lt;/p&gt;

&lt;p&gt;
:host
Выбирает теневой хост теневого DOM , содержащего &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;, внутри которого он используется.
&lt;/p&gt;

&lt;p&gt;
:host()
Выбирает теневой хост теневого DOM , содержащего &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;, внутри которого он используется (так что вы можете выбрать пользовательский элемент внутри его теневого DOM), но только если селектор, указанный в качестве параметра функции, соответствует теневому хосту.
&lt;/p&gt;

&lt;p&gt;
:host-context()
Выбирает теневой хост теневого DOM , содержащего &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;, внутри которого он используется (так что вы можете выбрать пользовательский элемент внутри его теневого DOM) — но только если селектор, указанный в качестве параметра функции, соответствует предку(ам) теневого хоста в поместите его внутри иерархии DOM.
&lt;/p&gt;

&lt;p&gt;
Псевдоэлементы &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;
Псевдоэлементы, относящиеся конкретно к пользовательским элементам:
&lt;/p&gt;

&lt;p&gt;
::part
Представляет любой элемент в теневом дереве , который имеет соответствующий partатрибут.
&lt;/p&gt;

&lt;p&gt;
Тень ДОМ
ShadowRoot
Представляет корневой узел теневого поддерева DOM.
&lt;/p&gt;

&lt;p&gt;
Elementрасширения
Расширения интерфейса Element, связанные с теневым DOM:
&lt;/p&gt;

&lt;p&gt;
Метод Element.attachShadow()прикрепляет теневое дерево DOM к указанному элементу.
Свойство Element.shadowRootвозвращает теневой корень, прикрепленный к указанному элементу, или nullесли теневой корень не прикреплен.
Соответствующие Nodeдополнения
Дополнения к Nodeинтерфейсу, относящиеся к теневому DOM:
&lt;/p&gt;

&lt;p&gt;
Метод Node.getRootNode()возвращает корень объекта контекста, который необязательно включает теневой корень, если он доступен.
Свойство Node.isConnectedвозвращает логическое значение, указывающее, подключен ли узел (прямо или косвенно) к объекту контекста, например, к объекту Documentв случае обычного DOM или ShadowRootв случае теневого DOM.
Eventрасширения
Расширения интерфейса Event, связанные с теневым DOM:
&lt;/p&gt;

&lt;p&gt;
Event.composed
Возвращает значение true, если событие будет распространяться через границу теневого DOM в стандартный DOM, в противном случае false.
&lt;/p&gt;

&lt;p&gt;
Event.composedPath
Возвращает путь события (объекты, для которых будут вызываться прослушиватели). Это не включает узлы в теневых деревьях, если теневой корень был создан с ShadowRoot.modeзакрытым.
&lt;/p&gt;

&lt;p&gt;
&lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-шаблоны
&amp;lt;template&amp;gt;
Содержит фрагмент &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;, который не отображается при первоначальной загрузке содержащего документа, но может отображаться во время выполнения с помощью JavaScript, который в основном используется в качестве основы для структур пользовательских элементов. Связанный интерфейс DOM — HTMLTemplateElement.
&lt;/p&gt;

&lt;p&gt;
&amp;lt;slot&amp;gt;
Заполнитель внутри веб-компонента, который можно заполнить собственной разметкой, что позволяет создавать отдельные деревья DOM и представлять их вместе. Связанный интерфейс DOM — HTMLSlotElement.
&lt;/p&gt;

&lt;p&gt;
Глобальный slotатрибут &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;
Назначает элементу слот в теневом дереве теневого DOM.
&lt;/p&gt;

&lt;p&gt;
Element.assignedSlot
Атрибут только для чтения, который возвращает ссылку на элемент, &amp;lt;slot&amp;gt;в который вставлен этот элемент.
&lt;/p&gt;

&lt;p&gt;
Text.assignedSlot
Доступный только для чтения атрибут, возвращающий ссылку на элемент, &amp;lt;slot&amp;gt;в который вставлен этот текстовый узел.
&lt;/p&gt;

&lt;p&gt;
Elementрасширения
Расширения интерфейса Element, связанные со слотами:
&lt;/p&gt;

&lt;p&gt;
Element.slot
Возвращает имя теневого слота DOM, прикрепленного к элементу.
&lt;/p&gt;

&lt;p&gt;
Псевдоэлементы &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;
Псевдоэлементы, относящиеся конкретно к слотам:
&lt;/p&gt;

&lt;p&gt;
::slotted
Соответствует любому содержимому, которое вставляется в слот.
&lt;/p&gt;

&lt;p&gt;
событие slotchange_
Запускается для HTMLSlotElementэкземпляра ( &amp;lt;slot&amp;gt;элемента), когда узлы, содержащиеся в этом слоте, изменяются.
&lt;/p&gt;

&lt;p&gt;
Примеры
Мы создаем ряд примеров в нашем репозитории GitHub с примерами веб-компонентов . Со временем будет добавлено больше.
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 22 Aug 2023 18:58:48 +0000</pubDate>
        </item>
        <item>
            <title>webgl_api</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:api:webgl_api&amp;rev=1692727270</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;webgl2d-_и_3d-графика_для_интернета&quot;&gt;WebGL: 2D- и 3D-графика для Интернета.&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
WebGL (библиотека веб-графики) — это &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; JavaScript для рендеринга высокопроизводительной интерактивной 3D- и 2D-графики в любом совместимом веб-браузере без использования подключаемых модулей. WebGL делает это путем введения &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;, который полностью соответствует OpenGL ES 2.0 и который можно использовать в &amp;lt;canvas&amp;gt;элементах &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;. Это соответствие позволяет &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; использовать преимущества аппаратного ускорения графики, обеспечиваемого устройством пользователя.
&lt;/p&gt;

&lt;p&gt;
Поддержка WebGL присутствует во всех современных браузерах (см. таблицы совместимости ниже); однако устройство пользователя также должно иметь оборудование, поддерживающее эти функции.
&lt;/p&gt;

&lt;p&gt;
&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; WebGL 2 обеспечивает поддержку большей части набора функций OpenGL ES 3.0; это предоставляется через WebGL2RenderingContextинтерфейс.
&lt;/p&gt;

&lt;p&gt;
Этот &amp;lt;canvas&amp;gt;элемент также используется &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; Canvas для создания 2D-графики на веб-страницах.
&lt;/p&gt;

&lt;p&gt;
Ссылка
Стандартные интерфейсы
WebGLRenderingContext
WebGL2RenderingContext
WebGLActiveInfo
WebGLBuffer
WebGLContextEvent
WebGLFramebuffer
WebGLProgram
WebGLQuery
WebGLRenderbuffer
WebGLSampler
WebGLShader
WebGLShaderPrecisionFormat
WebGLSync
WebGLTexture
WebGLTransformFeedback
WebGLUniformLocation
WebGLVertexArrayObject
Расширения
ANGLE_instanced_arrays
EXT_blend_minmax
EXT_color_buffer_float
EXT_color_buffer_half_float
EXT_disjoint_timer_query
EXT_float_blend Экспериментальный
EXT_frag_depth
EXT_shader_texture_lod
EXT_sRGB
EXT_texture_compression_bptc
EXT_texture_compression_rgtc
EXT_texture_filter_anisotropic
EXT_texture_norm16
KHR_parallel_shader_compile
OES_draw_buffers_indexed
OES_element_index_uint
OES_fbo_render_mipmap
OES_standard_derivatives
OES_texture_float
OES_texture_float_linear
OES_texture_half_float
OES_texture_half_float_linear
OES_vertex_array_object
OVR_multiview2
WEBGL_color_buffer_float
WEBGL_compressed_texture_astc
WEBGL_compressed_texture_etc
WEBGL_compressed_texture_etc1
WEBGL_compressed_texture_pvrtc
WEBGL_compressed_texture_s3tc
WEBGL_compressed_texture_s3tc_srgb
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBGL_depth_texture
WEBGL_draw_buffers
WEBGL_lose_context
WEBGL_multi_draw
События
webglcontextlost
webglcontextrestored
webglcontextcreationerror
Константы и типы
Константы WebGL
Типы WebGL
WebGL 2
WebGL 2 — это крупное обновление WebGL, предоставляемое через WebGL2RenderingContextинтерфейс. Он основан на OpenGL ES 3.0 и включает в себя новые функции:
&lt;/p&gt;

&lt;p&gt;
3D текстуры ,
Объекты сэмплера ,
Объекты Uniform Buffer ,
Синхронизировать объекты ,
Объекты запроса ,
Преобразовать объекты обратной связи ,
Продвинутые расширения, которые теперь являются ядром WebGL 2: объекты Vertex Array , создание экземпляров , несколько целей рендеринга , глубина фрагмента .
См. также сообщение в блоге «WebGL 2 в Firefox» и на веб-сайте webglsamples.org/WebGL2Samples , где можно найти несколько демонстраций.
&lt;/p&gt;

&lt;p&gt;
Руководства и учебные пособия
Ниже вы найдете ряд руководств, которые помогут вам изучить концепции WebGL, а также учебные пособия, содержащие пошаговые уроки и примеры.
&lt;/p&gt;

&lt;p&gt;
Путеводители
Данные в WebGL
Руководство по переменным, буферам и другим типам данных, используемым при написании кода WebGL.
&lt;/p&gt;

&lt;p&gt;
Лучшие практики WebGL
Советы и предложения, которые помогут вам улучшить качество, производительность и надежность вашего контента WebGL.
&lt;/p&gt;

&lt;p&gt;
Использование расширений
Руководство по использованию расширений WebGL.
&lt;/p&gt;

&lt;p&gt;
Учебники
Учебное пособие по WebGL
Руководство для начинающих по основным понятиям WebGL. Хорошее место для начала, если у вас нет опыта работы с WebGL.
&lt;/p&gt;

&lt;p&gt;
Примеры
Базовый пример 2D-анимации WebGL
Этот пример демонстрирует простую анимацию одноцветной фигуры. Рассмотренные темы включают адаптацию к различиям в пропорциях, функцию создания шейдерных программ из наборов нескольких шейдеров и основы рисования в WebGL.
&lt;/p&gt;

&lt;p&gt;
WebGL на примере
Серия живых примеров с краткими пояснениями, демонстрирующих концепции и возможности WebGL. Примеры отсортированы по темам и уровням сложности и охватывают контекст рендеринга WebGL, программирование шейдеров, текстуры, геометрию, взаимодействие с пользователем и многое другое.
&lt;/p&gt;

&lt;p&gt;
Расширенные учебные пособия
Проекция вида модели WebGL
Подробное объяснение трех основных матриц, которые обычно используются для представления вида трехмерного объекта: матрицы модели, вида и проекции.
&lt;/p&gt;

&lt;p&gt;
Матричная математика для Интернета
Полезное руководство о том, как работают матрицы 3D-преобразований, которое можно использовать в Интернете — как для вычислений WebGL, так и в преобразованиях &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;.
&lt;/p&gt;

&lt;p&gt;
Ресурсы
Сайт Khronos WebGL Главный веб-сайт WebGL группы Khronos.
Основы WebGL Базовое руководство по основам WebGL.
Raw WebGL: введение в WebGL Выступление Ника Десолнье, знакомящее с основами WebGL.
Игровая площадка WebGL Онлайн-инструмент для создания и совместного использования проектов WebGL. Подходит для быстрого прототипирования и экспериментов.
WebGL Academy Редактор &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;/JavaScript с обучающими материалами для изучения основ программирования WebGL.
WebGL Stats Сайт со статистикой возможностей WebGL в браузерах на разных платформах.
Библиотеки
Three.js — это полнофункциональная 3D-библиотека WebGL с открытым исходным кодом.
Babylon.js — это мощный, простой и открытый движок игр и 3D-рендеринга, упакованный в дружественную среду JavaScript.
Pixi.js — это быстрый 2D-рендерер WebGL с открытым исходным кодом.
Phaser — это быстрая, бесплатная и увлекательная платформа с открытым исходным кодом для браузерных игр на основе Canvas и WebGL.
PlayCanvas — игровой движок с открытым исходным кодом.
glMatrix — это библиотека матриц и векторов JavaScript для высокопроизводительных приложений WebGL.
twgl — это библиотека, позволяющая сделать webgl менее многословным.
RedGL — это 3D-библиотека WebGL с открытым исходным кодом.
vtk.js — это библиотека JavaScript для научной визуализации в вашем браузере.
webgl-lint поможет найти ошибки в вашем коде WebGL и предоставит полезную информацию.
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 22 Aug 2023 18:01:10 +0000</pubDate>
        </item>
        <item>
            <title>webvtt_api</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:api:webvtt_api&amp;rev=1692723956</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;webvtt_формат_текстовых_дорожек_веб-видео&quot;&gt;WebVTT (Формат текстовых дорожек веб-видео)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Формат текстовых дорожек веб-видео ( WebVTT ) — это формат для отображения синхронизированных текстовых дорожек (например, субтитров или заголовков) с использованием этого &amp;lt;track&amp;gt;элемента. Основная цель файлов WebVTT — добавление текстовых наложений в файл &amp;lt;video&amp;gt;. WebVTT — это текстовый формат, который должен быть закодирован с использованием UTF-8 . Там, где вы можете использовать пробелы, вы также можете использовать табуляции. Существует также небольшой &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; для представления и управления этими треками и данными, необходимыми для воспроизведения текста в нужное время.
&lt;/p&gt;

&lt;p&gt;
Файлы WebVTT
MIME-тип WebVTT — text/vtt.
&lt;/p&gt;

&lt;p&gt;
Файл WebVTT ( .vtt) содержит сигналы, которые могут состоять из одной или нескольких строк, как показано ниже:
&lt;/p&gt;

&lt;p&gt;
WEBVTT
&lt;/p&gt;

&lt;p&gt;
00:01.000 –&amp;gt; 00:04.000
- Never drink liquid nitrogen.
&lt;/p&gt;

&lt;p&gt;
00:05.000 –&amp;gt; 00:09.000
- It will perforate your stomach.
- You could die.
Тело WebVTT
Структура WebVTT состоит из следующих компонентов (некоторые из них необязательные) в следующем порядке:
&lt;/p&gt;

&lt;p&gt;
Дополнительный знак порядка байтов (BOM).
Строка « WEBVTT».
Необязательный текстовый заголовок справа от WEBVTT.
После . должен быть хотя бы один пробел WEBVTT.
Вы можете использовать это, чтобы добавить описание к файлу.
В текстовом заголовке вы можете использовать что угодно, кроме символов новой строки или строки « –&amp;gt;».
Пустая строка, эквивалентная двум последовательным символам новой строки.
Ноль или более реплик или комментариев.
Ноль или более пустых строк.
Примеры
Простейший файл WebVTT
WEBVTT
Очень простой файл WebVTT с текстовым заголовком.
WEBVTT - This file has no cues.
Общий пример WebVTT с заголовком и сигналами
WEBVTT - This file has cues.
&lt;/p&gt;

&lt;p&gt;
14
00:01:14.815 –&amp;gt; 00:01:18.114
- What?
- Where are we now?
&lt;/p&gt;

&lt;p&gt;
15
00:01:18.171 –&amp;gt; 00:01:20.991
- This is big bat country.
&lt;/p&gt;

&lt;p&gt;
16
00:01:21.058 –&amp;gt; 00:01:23.868
- [ Bats Screeching ]
- They won&amp;#039;t get in your hair. They&amp;#039;re after the bugs.
Внутренняя структура файла WebVTT
Давайте еще раз рассмотрим один из наших предыдущих примеров и рассмотрим структуру сигнала более подробно.
&lt;/p&gt;

&lt;p&gt;
WEBVTT
&lt;/p&gt;

&lt;p&gt;
00:01.000 –&amp;gt; 00:04.000
- Never drink liquid nitrogen.
&lt;/p&gt;

&lt;p&gt;
00:05.000 –&amp;gt; 00:09.000
- It will perforate your stomach.
- You could die.
В случае каждого сигнала:
&lt;/p&gt;

&lt;p&gt;
Первая строка начинается со времени, которое является временем начала отображения текста, который появляется под ней.
В той же строке у нас есть строка « –&amp;gt;».
Мы заканчиваем первую строку вторым временем, которое является временем окончания отображения связанного текста.
Затем мы можем иметь одну или несколько строк, начинающихся с дефиса (-), каждая из которых будет содержать часть отображаемой текстовой дорожки.
Мы также можем размещать комментарии в нашем .vttфайле, чтобы помочь нам запомнить важную информацию о частях нашего файла. Они должны быть на отдельных строках, начиная со строки NOTE. Подробнее об этом вы найдете в разделе ниже.
&lt;/p&gt;

&lt;p&gt;
Важно не использовать «лишние» пустые строки внутри вызова, например, между строкой таймингов и полезной нагрузкой сигнала. WebVTT основан на линиях; пустая строка закроет вызов.
&lt;/p&gt;

&lt;p&gt;
Комментарии WebVTT
Комментарии — это необязательный компонент, который можно использовать для добавления информации в файл WebVTT. Комментарии предназначены для тех, кто читает файл, и не видны пользователям. Комментарии могут содержать символы новой строки, но не могут содержать пустую строку, которая эквивалентна двум последовательным символам новой строки. Пустая строка означает конец комментария.
&lt;/p&gt;

&lt;p&gt;
Комментарий не может содержать строку –&amp;gt;, символ амперсанда ( &amp;amp;) или знак «меньше» ( &amp;lt;). Если вы хотите использовать такие символы, вам необходимо экранировать их, используя, например, &amp;amp;amp;амперсанд и &amp;amp;lt;меньше. Также рекомендуется использовать escape-последовательность «больше чем» ( &amp;amp;gt;) вместо символа «больше чем» ( &amp;gt;), чтобы избежать путаницы с тегами.
&lt;/p&gt;

&lt;p&gt;
Комментарий состоит из трех частей:
&lt;/p&gt;

&lt;p&gt;
Строка NOTE.
Пробел или новая строка.
Ноль или более символов, кроме указанных выше.
Примеры
Общий пример WebVTT
NOTE This is a comment
Многострочный комментарий
NOTE
One comment that is spanning
more than one line.
&lt;/p&gt;

&lt;p&gt;
NOTE You can also make a comment
across more than one line this way.
Обычное использование комментариев
WEBVTT - Translation of that film I like
&lt;/p&gt;

&lt;p&gt;
NOTE
This translation was done by Kyle so that
some friends can watch it with their parents.
&lt;/p&gt;

&lt;p&gt;
1
00:02:15.000 –&amp;gt; 00:02:20.000
- Ta en kopp varmt te.
- Det är inte varmt.
&lt;/p&gt;

&lt;p&gt;
2
00:02:20.000 –&amp;gt; 00:02:25.000
- Har en kopp te.
- Det smakar som te.
&lt;/p&gt;

&lt;p&gt;
NOTE This last line may not translate well.
&lt;/p&gt;

&lt;p&gt;
3
00:02:25.000 –&amp;gt; 00:02:30.000
- Ta en kopp
Стилизация сигналов WebVTT
Вы можете стилизовать сигналы WebVTT, ища элементы, соответствующие псевдоэлементу ::cue.
&lt;/p&gt;

&lt;p&gt;
&lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; сайта
&lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
video::cue {
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;background-image: linear-gradient(to bottom, dimgray, lightgray);
color: papayawhip;&lt;/pre&gt;

&lt;p&gt;
}
&lt;/p&gt;

&lt;p&gt;
video::cue(b) {
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;color: peachpuff;&lt;/pre&gt;

&lt;p&gt;
}
Здесь все видеоэлементы оформлены с использованием серого линейного градиента в качестве фона с цветом переднего плана «papayawhip». Кроме того, текст, выделенный жирным шрифтом с использованием этого &amp;lt;b&amp;gt;элемента, окрашивается «peachpuff».
&lt;/p&gt;

&lt;p&gt;
Приведенный ниже фрагмент &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; фактически управляет отображением самого мультимедиа.
&lt;/p&gt;

&lt;p&gt;
&lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
&amp;lt;video controls autoplay src=«video.webm»&amp;gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;track default src=&amp;quot;track.vtt&amp;quot; /&amp;gt;&lt;/pre&gt;

&lt;p&gt;
&amp;lt;/video&amp;gt;
Внутри самого файла WebVTT
Вы также можете определить стиль непосредственно в файле WebVTT. В этом случае вы вставляете свои правила &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; в файл, причем каждому правилу предшествует строка «STYLE»в строке текста, как показано ниже:
&lt;/p&gt;

&lt;p&gt;
WEBVTT
&lt;/p&gt;

&lt;p&gt;
STYLE
::cue {
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;background-image: linear-gradient(to bottom, dimgray, lightgray);
color: papayawhip;&lt;/pre&gt;

&lt;p&gt;
}
/* Style blocks cannot use blank lines nor «dash dash greater than» */
&lt;/p&gt;

&lt;p&gt;
NOTE comment blocks can be used between style blocks.
&lt;/p&gt;

&lt;p&gt;
STYLE
::cue(b) {
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;color: peachpuff;&lt;/pre&gt;

&lt;p&gt;
}
&lt;/p&gt;

&lt;p&gt;
00:00:00.000 –&amp;gt; 00:00:10.000
- Hello &amp;lt;b&amp;gt;world&amp;lt;/b&amp;gt;.
&lt;/p&gt;

&lt;p&gt;
NOTE style blocks cannot appear after the first cue.
Мы также можем использовать идентификаторы внутри файла WebVTT, которые можно использовать для определения нового стиля для некоторых конкретных сигналов в файле. Пример, в котором мы хотели, чтобы текст транскрипции был выделен красным цветом, а другая часть оставалась нормальной, мы можем определить его следующим образом с помощью &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;. Следует отметить, что &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; использует escape-последовательности так же, как они используются на страницах &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;:
&lt;/p&gt;

&lt;p&gt;
WEBVTT
&lt;/p&gt;

&lt;p&gt;
1
00:00.000 –&amp;gt; 00:02.000
That&amp;#039;s an, an, that&amp;#039;s an L!
&lt;/p&gt;

&lt;p&gt;
crédit de transcription
00:04.000 –&amp;gt; 00:05.000
Transcrit par Célestes™
&lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
::cue(#\31) {
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;color: lime;&lt;/pre&gt;

&lt;p&gt;
}
::cue(#crédit\ de\ transcription) {
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;color: red;&lt;/pre&gt;

&lt;p&gt;
}
Также поддерживается позиционирование текстовых дорожек путем включения информации о позиционировании после тайминга в метку, как показано ниже ( дополнительную информацию см. в разделе Настройки метки ):
&lt;/p&gt;

&lt;p&gt;
WEBVTT
&lt;/p&gt;

&lt;p&gt;
00:00:00.000 –&amp;gt; 00:00:04.000 position:10%,line-left align:left size:35%
Where did he go?
&lt;/p&gt;

&lt;p&gt;
00:00:03.000 –&amp;gt; 00:00:06.500 position:90% align:right size:35%
I think he went down this lane.
&lt;/p&gt;

&lt;p&gt;
00:00:04.000 –&amp;gt; 00:00:06.500 position:45%,line-right align:center size:35%
What are you waiting for?
Сигналы WebVTT
Сигнал — это отдельный блок субтитров, который имеет одно время начала, время окончания и текстовую нагрузку. Кий состоит из пяти компонентов:
&lt;/p&gt;

&lt;p&gt;
Необязательный идентификатор сигнала, за которым следует новая строка.
Тайминги реплик.
Дополнительные настройки метки, по крайней мере, с одним пробелом перед первой и между каждой настройкой.
Одна новая строка.
Текст полезной нагрузки сигнала.
Вот пример реплики:
&lt;/p&gt;

&lt;p&gt;
1 - Title Crawl
00:00:05.000 –&amp;gt; 00:00:10.000 line:0 position:20% size:60% align:start
Some time ago in a place rather distant….
Идентификатор сигнала
Идентификатор — это имя, которое идентифицирует сигнал. Его можно использовать для ссылки на реплику из сценария. Он не должен содержать новой строки и не может содержать строку « –&amp;gt;». Он должен заканчиваться одной новой строкой. Они не обязательно должны быть уникальными, хотя их принято нумеровать (например, 1, 2, 3).
&lt;/p&gt;

&lt;p&gt;
Вот несколько примеров:
&lt;/p&gt;

&lt;p&gt;
Базовый идентификатор сигнала
1 - Title Crawl
Общее использование идентификаторов
WEBVTT
&lt;/p&gt;

&lt;p&gt;
1
00:00:22.230 –&amp;gt; 00:00:24.606
This is the first subtitle.
&lt;/p&gt;

&lt;p&gt;
2
00:00:30.739 –&amp;gt; 00:00:34.074
This is the second.
&lt;/p&gt;

&lt;p&gt;
3
00:00:34.159 –&amp;gt; 00:00:35.743
Third
Тайминги меток
Время сигнала указывает, когда сигнал отображается. У него есть время начала и окончания, которые представлены метками времени. Время окончания должно быть больше времени начала, а время начала должно быть больше или равно всем предыдущим временам начала. Сигналы могут иметь перекрывающиеся тайминги.
&lt;/p&gt;

&lt;p&gt;
Если файл WebVTT используется для глав ( is ), тогда в файле не может быть перекрывающихся таймингов.&amp;lt;track&amp;gt; kindchapters
&lt;/p&gt;

&lt;p&gt;
Каждый тайминг сигнала содержит пять компонентов:
&lt;/p&gt;

&lt;p&gt;
Временная метка времени начала.
Хотя бы одно место.
Строка « –&amp;gt;».
Хотя бы одно место.
Временная метка времени окончания, которая должна быть больше времени начала.
Временные метки должны быть в одном из двух форматов:
&lt;/p&gt;

&lt;p&gt;
mm:ss.ttt
hh:mm:ss.ttt
Где компоненты определены следующим образом:
&lt;/p&gt;

&lt;p&gt;
hh
Представляет часы и должно состоять как минимум из двух цифр. Оно может быть больше двух цифр (например, 9999:00:00.000).
&lt;/p&gt;

&lt;p&gt;
mm
Представляет минуты и должно находиться в диапазоне от 00 до 59 включительно.
&lt;/p&gt;

&lt;p&gt;
ss
Представляет секунды и должно находиться в диапазоне от 00 до 59 включительно.
&lt;/p&gt;

&lt;p&gt;
ttt
Представляет миллисекунды и должно находиться в диапазоне от 000 до 999 включительно.
&lt;/p&gt;

&lt;p&gt;
Вот несколько примеров тайминга сигналов:
&lt;/p&gt;

&lt;p&gt;
Основные примеры синхронизации сигналов
00:00:22.230 –&amp;gt; 00:00:24.606
00:00:30.739 –&amp;gt; 00:00:34.074
00:00:34.159 –&amp;gt; 00:00:35.743
00:00:35.827 –&amp;gt; 00:00:40.122
Примеры перекрывающихся сигналов синхронизации
00:00:00.000 –&amp;gt; 00:00:10.000
00:00:05.000 –&amp;gt; 00:01:00.000
00:00:30.000 –&amp;gt; 00:00:50.000
Примеры неперекрывающихся сигналов синхронизации
00:00:00.000 –&amp;gt; 00:00:10.000
00:00:10.000 –&amp;gt; 00:01:00.581
00:01:00.581 –&amp;gt; 00:02:00.100
00:02:01.000 –&amp;gt; 00:02:01.000
Настройки сигнала
Настройки метки — это дополнительные компоненты, используемые для определения места, где текст полезной нагрузки метки будет отображаться поверх видео. Это включает в себя то, отображается ли текст горизонтально или вертикально. Их может быть ноль или более, и их можно использовать в любом порядке, при условии, что каждый параметр используется не более одного раза.
&lt;/p&gt;

&lt;p&gt;
Настройки сигнала добавляются справа от времени сигнала. Между моментом сигнала и первой настройкой, а также между каждой настройкой должен быть один или несколько пробелов. Имя и значение параметра разделяются двоеточием. Настройки чувствительны к регистру, поэтому используйте строчные буквы, как показано. Существует пять настроек сигнала:
&lt;/p&gt;

&lt;p&gt;
vertical
Указывает, что текст будет отображаться вертикально, а не горизонтально, как, например, в некоторых азиатских языках. Возможны два значения:
&lt;/p&gt;

&lt;p&gt;
rl
Направление письма справа налево.
&lt;/p&gt;

&lt;p&gt;
lr
Направление письма слева направо
&lt;/p&gt;

&lt;p&gt;
line
Если параметр «вертикаль» не установлен, указывает, где текст будет располагаться вертикально. Если задано значение «Вертикально», линия указывает, где текст будет располагаться по горизонтали. Его значение может составлять:
&lt;/p&gt;

&lt;p&gt;
номер строки
Число — это высота первой строки реплики, как она отображается на видео. Положительные числа указывают сверху вниз, а отрицательные числа указывают снизу вверх.
&lt;/p&gt;

&lt;p&gt;
процент
Оно должно быть целым числом (т. е. без десятичных знаков) от 0 до 100 включительно, после которого должен стоять знак процента (%).
&lt;/p&gt;

&lt;p&gt;
Линия	verticalопущен	vertical:rl	vertical:lr
line:0	вершина	верно	левый
line:-1	нижний	левый	верно
line:0%	вершина	верно	левый
line:100%	нижний	левый	верно
position
Указывает, где текст будет отображаться по горизонтали. Если задано значение «вертикально», позиция определяет, где текст будет отображаться вертикально. Значение представляет собой процент, то есть целое число (без десятичных знаков) от 0 до 100 включительно, за которым следует знак процента (%).
&lt;/p&gt;

&lt;p&gt;
Позиция	verticalопущен	vertical:rl	vertical:lr
position:0%	левый	вершина	вершина
position:100%	верно	нижний	нижний
size
Определяет ширину текстовой области. Если установлено значение «Вертикально», размер определяет высоту текстовой области. Значение представляет собой процент, то есть целое число (без десятичных знаков) от 0 до 100 включительно, за которым следует знак процента (%).
&lt;/p&gt;

&lt;p&gt;
Размер	verticalопущен	vertical:rl	vertical:lr
size:100%	полная ширина	полная высота	полная высота
size:50%	половина ширины	половина высоты	половина высоты
align
Задает выравнивание текста. Текст выравнивается в пределах пространства, заданного настройкой метки размера, если она установлена.
&lt;/p&gt;

&lt;p&gt;
Выровнять	verticalопущен	vertical:rl	vertical:lr
align:start	левый	вершина	вершина
align:center	центрировано по горизонтали	центрировано по вертикали	центрировано по вертикали
align:end	верно	нижний	нижний
Разберем пример настройки сигнала.
&lt;/p&gt;

&lt;p&gt;
Первая строка демонстрирует отсутствие настроек. Вторая строка может использоваться для наложения текста на знак или этикетку. Третья строка может использоваться для заголовка. Последняя строка может использоваться для азиатского языка.
&lt;/p&gt;

&lt;p&gt;
00:00:05.000 –&amp;gt; 00:00:10.000
00:00:05.000 –&amp;gt; 00:00:10.000 line:63% position:72% align:start
00:00:05.000 –&amp;gt; 00:00:10.000 line:0 position:20% size:60% align:start
00:00:05.000 –&amp;gt; 00:00:10.000 vertical:rt line:-1 align:end
Полезная нагрузка сигнала
Полезная нагрузка — это место, где находится основная информация или контент. При обычном использовании полезная нагрузка содержит отображаемые субтитры. Текст полезных данных может содержать символы новой строки, но не может содержать пустую строку, которая эквивалентна двум последовательным символам новой строки. Пустая строка означает конец реплики.
&lt;/p&gt;

&lt;p&gt;
Полезные данные ключевого текста не могут содержать строку –&amp;gt;, символ амперсанда ( &amp;amp;) или знак «меньше» ( &amp;lt;). Вместо этого используйте escape-последовательность &amp;amp;amp;для амперсанда и &amp;amp;lt;меньше чем. Также рекомендуется использовать escape-последовательность «больше чем» &amp;amp;gt;вместо символа «больше» ( &amp;gt;), чтобы избежать путаницы с тегами. Если вы используете файл WebVTT для метаданных, эти ограничения не применяются.
&lt;/p&gt;

&lt;p&gt;
Помимо трех упомянутых выше escape-последовательностей, есть еще четыре. Они перечислены в таблице ниже.
&lt;/p&gt;

&lt;p&gt;
Имя	Характер	Последовательность выхода
Амперсанд	&amp;amp;	&amp;amp;amp;
Меньше, чем	&amp;lt;	&amp;amp;lt;
Больше чем	&amp;gt;	&amp;amp;gt;
Отметка слева направо	никто	&amp;amp;lrm;
Метка справа налево	никто	&amp;amp;rlm;
Неразрывное пространство		&amp;amp;nbsp;
Текстовые теги полезной нагрузки
&amp;lt;b&amp;gt;Можно использовать ряд тегов, например . Однако если файл WebVTT используется в элементе, где указан &amp;lt;track&amp;gt;атрибут, вы не можете использовать теги.kindchapters
&lt;/p&gt;

&lt;p&gt;
Метка времени
Временная метка должна быть больше, чем временная метка начала вызова, больше, чем любая предыдущая временная метка в полезных данных вызова, и меньше, чем временная метка окончания вызова. Активный текст — это текст между меткой времени и следующей меткой времени или до конца полезных данных, если в полезных данных нет другой метки времени. Любой текст перед активным текстом в полезных данных является предыдущим текстом . Любой текст за пределами активного текста является будущим текстом . Это позволяет использовать субтитры в стиле караоке.
&lt;/p&gt;

&lt;p&gt;
1
00:16.500 –&amp;gt; 00:18.500
When the moon &amp;lt;00:17.500&amp;gt;hits your eye
&lt;/p&gt;

&lt;p&gt;
1
00:00:18.500 –&amp;gt; 00:00:20.500
Like a &amp;lt;00:19.000&amp;gt;big-a &amp;lt;00:19.500&amp;gt;pizza &amp;lt;00:20.000&amp;gt;pie
&lt;/p&gt;

&lt;p&gt;
1
00:00:20.500 –&amp;gt; 00:00:21.500
That&amp;#039;s &amp;lt;00:00:21.000&amp;gt;amore
Следующие теги являются тегами &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;, разрешенными в вызове, и требуют открытия и закрытия тегов (например, &amp;lt;b&amp;gt;text&amp;lt;/b&amp;gt;).
&lt;/p&gt;

&lt;p&gt;
Тег класса ( &amp;lt;c&amp;gt;&amp;lt;/c&amp;gt;)
Оформите содержащийся текст с помощью класса &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;.
&lt;/p&gt;

&lt;p&gt;
XML
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
&amp;lt;c.classname&amp;gt;text&amp;lt;/c&amp;gt;
Тег курсива ( &amp;lt;i&amp;gt;&amp;lt;/i&amp;gt;)
Выделите курсивом содержащийся текст.
&lt;/p&gt;

&lt;p&gt;
XML
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
&amp;lt;i&amp;gt;text&amp;lt;/i&amp;gt;
Жирный тег ( &amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;)
Выделите содержащийся текст жирным шрифтом.
&lt;/p&gt;

&lt;p&gt;
XML
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
&amp;lt;b&amp;gt;text&amp;lt;/b&amp;gt;
Подчеркнуть тег ( &amp;lt;u&amp;gt;&amp;lt;/u&amp;gt;)
Подчеркните содержащийся текст.
&lt;/p&gt;

&lt;p&gt;
XML
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
&amp;lt;u&amp;gt;text&amp;lt;/u&amp;gt;
Рубиновый тег ( &amp;lt;ruby&amp;gt;&amp;lt;/ruby&amp;gt;)
Используется с текстовыми тегами Ruby для отображения символов Ruby (т. е. небольших аннотативных символов над другими символами).
&lt;/p&gt;

&lt;p&gt;
XML
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
&amp;lt;ruby&amp;gt;WWW&amp;lt;rt&amp;gt;World Wide Web&amp;lt;/rt&amp;gt;oui&amp;lt;rt&amp;gt;yes&amp;lt;/rt&amp;gt;&amp;lt;/ruby&amp;gt;
Текстовый тег Ruby ( &amp;lt;rt&amp;gt;&amp;lt;/rt&amp;gt;)
Используется с тегами Ruby для отображения символов Ruby (т. е. небольших аннотативных символов над другими символами).
&lt;/p&gt;

&lt;p&gt;
XML
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
&amp;lt;ruby&amp;gt;WWW&amp;lt;rt&amp;gt;World Wide Web&amp;lt;/rt&amp;gt;oui&amp;lt;rt&amp;gt;yes&amp;lt;/rt&amp;gt;&amp;lt;/ruby&amp;gt;
Голосовая метка ( &amp;lt;v&amp;gt;&amp;lt;/v&amp;gt;)
Подобно тегу класса, также используется для стилизации содержащегося текста с помощью &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;.
&lt;/p&gt;

&lt;p&gt;
XML
Скопировать в буфер обмена
&lt;/p&gt;

&lt;p&gt;
&amp;lt;v Bob&amp;gt;text&amp;lt;/v&amp;gt;
Методы и свойства экземпляра
В WebVTT используются методы, которые используются для изменения сигнала или региона, поскольку атрибуты для обоих интерфейсов различны. Мы можем классифицировать их для лучшего понимания каждого интерфейса в WebVTT:
&lt;/p&gt;

&lt;p&gt;
ВТТКью
В интерфейсе доступны следующие методы VTTCue:
&lt;/p&gt;

&lt;p&gt;
getCueAsHTML()чтобы получить &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; этого сигнала.
Конструктор VTTCue()для создания новых экземпляров этого интерфейса.
Также доступны различные свойства, позволяющие считывать и устанавливать характеристики сигнала, такие как его положение, выравнивание или размер. Проверьте VTTCueполный список.
&lt;/p&gt;

&lt;p&gt;
ВТТРегион
Методы VTTRegionпредоставления, используемые для региона, перечислены ниже вместе с описанием их функциональности, особенно это позволяет настроить параметры прокрутки всех узлов, присутствующих в данном регионе.
&lt;/p&gt;

&lt;p&gt;
Учебник о том, как написать файл WebVTT
Чтобы написать простой файл webVTT, нужно выполнить несколько шагов. Прежде чем начать, следует отметить, что вы можете использовать блокнот, а затем сохранить файл как файл «.vtt». Шаги приведены ниже:
&lt;/p&gt;

&lt;p&gt;
Откройте блокнот.
Первая строка WebVTT стандартизирована аналогично тому, как некоторые другие языки требуют размещения заголовков в начале файла, указывающих тип файла. В самой первой строке нужно написать:
WEBVTT
Вторую строку оставьте пустой, а в третьей строке укажите время первой реплики. Например, для первой реплики, начинающейся через 1 секунду и заканчивающейся через 5 секунд, она записывается как:
00:01.000 –&amp;gt; 00:05.000
В следующей строке вы можете написать заголовок для этой реплики, который будет идти с первой секунды по пятую секунду включительно.
Следуя аналогичным шагам, можно создать полный файл WebVTT для конкретного видео или аудиофайла.
Псевдоклассы &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;
Псевдоклассы &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; позволяют нам классифицировать тип объекта, который мы хотим отличить от других типов объектов. В файлах WebVTT он работает так же, как и в файле &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;.
&lt;/p&gt;

&lt;p&gt;
Одной из хороших функций, поддерживаемых WebVTT, является локализация и использование элементов класса, которые можно использовать так же, как в &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; и &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;, для классификации стиля для объектов определенного типа, но здесь они используются для стилизации и классифицируя сигналы, как показано ниже:
&lt;/p&gt;

&lt;p&gt;
WEBVTT
&lt;/p&gt;

&lt;p&gt;
04:02.500 –&amp;gt; 04:05.000
J&amp;#039;ai commencé le basket à l&amp;#039;âge de 13, 14 ans
&lt;/p&gt;

&lt;p&gt;
04:05.001 –&amp;gt; 04:07.800
Sur les &amp;lt;i.foreignphrase&amp;gt;&amp;lt;lang en&amp;gt;playground&amp;lt;/lang&amp;gt;&amp;lt;/i&amp;gt;, ici à Montpellier
В приведенном выше примере можно заметить, что мы можем использовать идентификатор и имя псевдокласса для определения языка подписи, где &amp;lt;i&amp;gt;тег предназначен для курсива.
&lt;/p&gt;

&lt;p&gt;
Тип псевдокласса определяется используемым им селектором, и его работа по своей природе аналогична работе в &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;. Можно использовать следующие псевдоклассы &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;:
&lt;/p&gt;

&lt;p&gt;
lang(Язык): например, p:lang(it).
link: например, a:link.
nth-last-child: например, p:nth-last-child(2).
nth-child(n): например, p:nth-child(2).
Где p и a — это теги, которые используются в &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; для абзаца и ссылки соответственно, и их можно заменить идентификаторами, которые используются для сигналов в файле WebVTT.
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 22 Aug 2023 17:05:56 +0000</pubDate>
        </item>
    </channel>
</rss>
