Java, UX, HTML, CSS, WEB-design

Создание хороших сайтов с помощью Page Visibility API

Краткое описание по статье Создание хороших сайтов с помощью Page Visibility API

Название: Создание хороших сайтов с помощью Page Visibility API . Краткое описание: [ad_1] ⭐ Дадли С . Дата публикации: 08.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

[ad_1]

  • Дадли Стори

  • 0 Комментарии

Создание хороших сайтов с помощью Page Visibility API

  • 4 минуты чтения

  • Кодирование, UX, API, веб-разработка

Краткое резюме ↬

Мы все смирились с этим: запуск браузера перезагружает каждую вкладку, которую вы ранее открывали, взрывая какофоническую смесь звука и видео. Хотя браузеры упростили управление этим опытом с помощью значков вкладок и расширений, таких как MuteTab, для большинства людей такое поведение сбивает с толку и дезориентирует. Как разработчики и дизайнеры наша работа — сделать Интернет гостеприимным, не подавляющее. Разве не имеет смысла, что сайты должны быть активны только тогда, когда они являются основной вкладкой? Почему мы сжигаем батареи и циклы процессора с анимацией, которую нельзя увидеть?

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

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

Дальнейшее чтение на SmashingMag:

  • Создание кроссплатформенной игры WebGL
  • Переходы CSS3: слава богу, у нас есть спецификация!
  • Создание адаптивных фигур с помощью Clip-Path
  • Гибридные мобильные приложения: предоставление нативного опыта

К счастью, есть решение: HTML5 Page Visibility API. Вы можете увидеть, как это особенно эффективно использовалось в недавних проектах Active Theory, таких как их работа для Under Armour и A Spacecraft For All: щелкните другую вкладку, и вы обнаружите, что мультимедийная презентация приостанавливается, а музыка исчезает. Такое поведение типично для того, что мне нравится называть «вежливой сетью»: сайты, которые заботятся о внимании пользователей, пропускной способности и возможностях.

Еще после прыжка! Продолжить чтение ниже ↓

В прошлом разработчики пытались создать такое поведение, добавляя onblur() и onfocus() оконные обработчики. Хотя это значительно лучше, чем ничего, подход ограничен тем фактом, что он не может определить, действительно ли окно скрыто от пользователя. Например, наличие двух окон браузера рядом и переключение между ними все равно будет регистрироваться как onblur() или onfocus()даже несмотря на то, что содержимое каждого из них остается прекрасно видимым.

Реализация видимости страницы

Хотя существует множество возможностей использования Page Visibility API, возможно, наиболее очевидный вариант использования — это когда страница содержит видео: обычно нет смысла продолжать воспроизводить видеоконтент, если пользователь его не видит.


<video autoplay controls id="videoElement">
    <source src="https://www.smashingmagazine.com/2015/01/creating-sites-with-the-page-visibility-api/rar.mp4">
    <source src="rar.webm">
</video>

<script>
var videoElement = document.getElementById("videoElement");
document.addEventListener("visibilitychange", function() {
if (document.hidden) {     
videoElement.pause();  
} else {
videoElement.play();   
} 
});
</script>

Единственная проблема заключается в том, что это немного резко: звук в видео начинается и останавливается, как если бы он был обрезан гильотиной, когда пользователь переключает вкладки. Презентация может быть значительно улучшена за счет постепенного появления и исчезновения звука по мере того, как вкладка находится в фокусе. Если мы используем jQuery, мы можем аккуратно использовать animate способ сделать это.

<script>
var videoElement = document.getElementById("videoElement");

document.addEventListener("visibilitychange", function() {
if (document.hidden) {     
$("#videoElement").animate({volume: 0}, 1000, "linear", function() {
videoElement.pause();
});
} else {
videoElement.play();  
$("#videoElement").animate({volume: 1}, 1000, "linear");
} 
});
</script>

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

Спецификация Page Visibility API на удивление проста и состоит всего из двух методов: document.hidden возвращается true или false в зависимости от состояния окна браузера; и те же самые состояния отражаются в строковой форме для document.visibilityState (hidden и visibleсоответственно, с двумя необязательными значениями prerender и unloaded), с участием visibilitychange доступен как событие. document.visibilityState может быть полезен при определении Зачем документ не виден, но иначе document.hidden покрывает большинство потребностей.

Принципы предосторожности и поддержка браузера

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

Поддержка Page Visibility API отличная: все современные браузеры, за исключением Opera Mini, полностью поддерживают API, включая IE10+. Префиксы поставщиков также отсутствуют в реализации спецификации: единственные браузеры, которые в настоящее время нуждаются в –webkit префиксом являются Android и Blackberry. По этой причине (и для упрощения иллюстрации) я не включил никаких префиксов в приведенные выше примеры кода, хотя их достаточно легко включить и протестировать.

Page Visibility API также является отличным примером прогрессивного улучшения. Если браузер не поддерживает API, скрипт будет проигнорирован, а пользователь просто подвергнется обычной неконтролируемой какофонии.

Другое использование

Хотя аудио- и видеоконтент являются очевидными кандидатами на использование Page Visibility API, существует множество других возможностей: приостановка слайдера или презентации, когда сайт остается не в фокусе, или изменение визуального состояния страницы, когда она остается незамеченной.

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

Сокрушительная редакция
(ил, ог, мл)



[ad_2]
Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — Создание хороших сайтов с помощью Page Visibility API

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Кнопка «Наверх»