Среда, 18 Июль 2018 01:03

Скрипт автоматического обновления страницы

Когда информация на сайте обновляется в режиме реального времени, имеет смысл хоть раз в минуту «автоматически обновлять страницу». В такие моменты на помощь приходит javascript, мне помог следующий код:

<script>
    var refresh_rate = 60; //<-- Сюда пишем количество секунд
    var last_user_action = 0;
    var has_focus = false;
    var lost_focus_count = 0;
    var focus_margin = 10;

    function reset() {
        last_user_action = 0;
        console.log("Reset");
    }

    function windowHasFocus() {
        has_focus = true;
    }

    function windowLostFocus() {
        has_focus = false;
        lost_focus_count++;
        console.log(lost_focus_count + " <~ Lost Focus");
    }

    setInterval(function () {
        last_user_action++;
        refreshCheck();
    }, 1000);

    function refreshCheck() {
        var focus = window.onfocus;
        if ((last_user_action >= refresh_rate && !has_focus && document.readyState == "complete") || lost_focus_count > focus_margin) {
            window.location.reload();
            reset();
        }

   }

    window.addEventListener("focus", windowHasFocus, false);
    window.addEventListener("blur", windowLostFocus, false);
    window.addEventListener("click", reset, false);
    window.addEventListener("mousemove", reset, false);
    window.addEventListener("keypress", reset, false);
</script>

При установленных настройках страница будет автоматически обновляться раз в минуту. Если Вам нужно изменить время интервала, измените значение var refresh_rate = 60; на нужное Вам.

Спонсоры: