Да.Наиболее существенную разницу между ними можно увидеть на телефонах.На настольных и планшетных устройствах, когда вы хотите изменить вкладку браузера, для этого достаточно ОДНОГО шага.Вы просто нажмите / нажмите, где вы хотите пойти, и вы там.Это выглядит так:
Но на телефоне обычно есть ДВА шага.Сначала вы начинаете так:
, а когда вы нажимаете на значок TABS, вы видите всплывающее меню, подобное этому,
Именно здесь основное различие между изменением видимости и размытием / фокусировкой становится очевидным и также может быть важным.Согласно "visibilitychange
", пользователь еще не покинул вашу страницу на данном этапе.Но согласно «blur
/ focus
» пользователь отсутствует.
Что касается других случаев, я использовал оба, чтобы увидеть, какой из них срабатывает раньше.Код:
document.addEventListener("visibilitychange", visChngF);
function visChngF()
{
if (document.hidden) {
console.log("hidden means user is gone");
} else {
console.log("visible means user is back");
}
}
window.addEventListener('blur', blurHappenedF);
function blurHappenedF()
{
console.log("blur means user is away");
}
window.addEventListener('focus', focusHappenedF);
function focusHappenedF()
{
console.log("focus means user is here");
}
Результат: непредсказуемо.Иногда видимость меняется до размытия / фокусировки, а иногда и после.Это может даже произойти между событием размытия и событием фокуса.