Семь JavaScript Web API для создания футуристического сайта, о которых вы могли не слышать

Андрій Губін

Разработчики регулярно получают новые инструменты и API. Но было обнаружено, что из более 100+ API только 5% активно используются программистами.

Веб-девелопер и блогер Тапайоти Босе сделал подборку из семи футуристических JavaScript Web API в своем блоге, а мы перевели этот список для вашего комфорта. Апишки помогут сделать ваш сайт еще более крутым и инновационным.

Web Speech

Web Speech API позволяет включать голосовые данные в веб-приложения. Web Speech API состоит из двух частей: Speech Synthesis (превращение текста в речь) и Speech Recognition (асинхронное распознавание речи).

// Speech Synthesis
const synth = window.speechSynthesis;
const utterance = new SpeechSynthesisUtterance("Hello World");
synth.speak(utterance);

// Speech Recognition
const SpeechRecognition =
window.SpeechRecognition ?? window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();
recognition.start();
recognition.onresult = (event) => {
const speechToText = event.results[0][0].transcript;
console.log(speechToText);
};

Примечания:

  • Несмотря на то, что Speech Synthesis поддерживается всеми основными браузерами с 96% охватом, Speech Recognition все еще немного рано использовать, потому что оно имеет охват только 86%.
  • API нельзя использовать без взаимодействия с пользователем (например, клик, нажатие клавиши и т.п.).

Page Visibility

Page Visibility API позволяет проверить, видима ли страница или нет. Это полезно, когда вы хотите приостановить видео.

Существует два способа выполнить эту проверку:

// Method 1
document.addEventListener("visibilitychange", () => {
if (document.visibilityState === "visible") {
document.title = "Visible";
return;
}
document.title = "Not Visible";
});

// Method 2
window.addEventListener("blur", () => {
document.title = "Not Visible";
});
window.addEventListener("focus", () => {
document.title = "Visible";
});

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

Accelerometer

Accelerometer API позволяет получить доступ к данным ускорения с устройства.

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

const acl = new Accelerometer({ frequency: 60 });

acl.addEventListener("reading", () => {
const vector = [acl.x, acl.y, acl.z];
const magnitude = Math.sqrt(vector.reduce((s, v) => s + v * v, 0));
if (magnitude > THRESHOLD) {
console.log("I feel dizzy!");
}
});

acl.start();

Вы можете запросить разрешение акселерометра с помощью:

navigator.permissions.query({ name: "accelerometer" }).then((result) => {
if (result.state === "granted") {
// now you can use accelerometer api
} 
});

Geolocation

Geolocation API позволяет получить доступ к местонахождению пользователя.

Это может быть очень полезным, если вы создаете что-то, связанное с картами или службами на основе местоположения.

navigator.geolocation.getCurrentPosition(({ coords }) => {
console.log(coords.latitude, coords.longitude);
});

Вы можете запросить разрешение геолокации с помощью:

navigator.permissions.query({ name: "geolocation" }).then((result) => {
if (result.state === "granted") {
// now you can use geolocation api
} 
});

Web Worker

Web Worker позволяет запускать операцию скрипта на фоне, отдельном от основного потока выполнения веб-приложения. Преимуществом этого является то, что трудоемкая обработка может выполняться в отдельном потоке, позволяя главному (обычно пользовательскому интерфейсу) потоку работать без блокировки/замедления.

// main.js
const worker = new Worker("worker.js");
worker.onmessage = (e) => console.log(e.data);
worker.postMessage([5, 3]);

// worker.js
onmessage = (e) => {
const [a, b] = e.data;
postMessage(a + b);
};

Resize Observer

API Resize Observer позволяет наблюдать за размером элемента и легко изменять.

Это очень полезно, если у вас есть сайдбар с переменным размером.

const sidebar = document.querySelector(".sidebar");
const observer = new ResizeObserver((entries) => {
const sidebar = entries[0];
//Do something with the element's new dimensions
});
observer.observe(sidebar);

Notification

Ах, уведомления! Маленькие надоедливые всплывающие окна (или пузырьки дофамина, в зависимости от вашего настроения).

Notification API, как следует из названия, позволяет вам посылать уведомления, чтобы раздражать пользователей (соедините его с Page Visibility API, чтобы раздражать их еще больше 😈).

Notification.requestPermission().then((permission) => {
if (permission === "granted") {
new Notification("Hi there!", {
body: "Notification body",
icon: "https://tapajyoti-bose.vercel.app/img/logo.png",
});
}
});

Примечание

Некоторые из вышеперечисленных API все еще находятся на экспериментальной стадии и поддерживаются не всеми браузерами. Итак, если вы хотите использовать их, вам следует проверить, поддерживает ли их браузер

К примеру:

if ("SpeechRecognition" in window || "webkitSpeechRecognition" in window) {
// Speech Recognition is supported
}

Надеемся, что эти апишки пригодятся вам и сделают ваш сайт лучшим.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023