Страницы

Поиск по вопросам

вторник, 12 марта 2019 г.

Во скольких вкладках открыт сайт?

Как проверить, во скольких вкладках открыт сайт? Чтобы можно было избежать высокой нагрузки на сервер, если например на сайте каждые пару секунд идут несколько запросов на сервер. Скажем у человека открыто 10 вкладок, но пользуется только 1. А в итоге еще 9 отправляют 5 запросов на сервер каждые 2 секунды, хотя толку от этого нет.


Ответ

Из комментариев нашел наиболее правильное решение для моей задачи.
Использование Page Visibility API
document.hidden
Если вкладка видна, то следует выполнять обновление страницы, если не видна то нет смысла в обновлении. Количество вкладок значение не имеет. Это подходит для онлайн редактора, когда нужно регулярно проверять не изменил ли кто нибудь документ который ты сейчас редактируешь, но важно не посылать по 20 запросов с 20 открытых вкладок.
Решения на базе onfocus и onblur имеют много недостатков. Один из них это например работа с 2 мониторами, мы открыли вкладку, переключились в другое окно, но всё еще видим нашу вкладку, однако потеряв фокус она перестала обновляться, хотя всё еще видна, и не факт что содержит самые последние сведения. Если надо и видимую вкладку замораживать, то тут уже придется вешать разные события, чтобы точно убедиться в "активности" пользователя.

Комментариев нет:

Отправить комментарий