Остановить таймер с помощью checknet js

101
05 марта 2022, 11:10

У меня проблема Я создаю онлайн-тест. Я проверяю, что интернет был отключен с помощью плагина jquery checknet. Если интернет отключается, тоже отключает все кнопки. Но я не могу остановить время, отведенное для теста. Или, когда интернет отключен, мне нужно добавить одну секунду к обратному отсчету к каждой секунде

Вот у меня интернет работает и все в порядке

Как можно остонавит или +1 за каждий секунд? Проблема в том, что один из них полный JS. другой - Jquery

Таймер, который нужно остановить:

function updateExamTimer() { 
 
    var timeLeft = EXAM_TIME_LEFT - elapsedTime; 
    elapsedTime += 1; 
 
    var minutes = Math.floor(timeLeft / 60); 
    var seconds = timeLeft % 60; 
    var hours = Math.floor(minutes / 60); 
    var minutes = minutes % 60; 
 
    if (hours < 10) { hours = '0' + hours; } 
    if (minutes < 10) { minutes = '0' + minutes; } 
    if (seconds < 10) { seconds = '0' + seconds; } 
 
 
    if (timeLeft <= 0) { 
 
        alert('Sizning imtihon topshirish muddatingiz yakunlandi.'); 
 
        // If we're in ajax mode, submit via ajax - otherwise, redirect to the completion page 
        if (jQuery('#exam-ui').length) { 
            finishExam(false); 
        } else { 
            document.location.href = 'complete.php?id=' + EXAM_REQUEST_ID; 
        } 
 
    } else { 
        jQuery('#exam-time-left').val(hours + ':' + minutes + ':' + seconds); 
        setTimeout('updateExamTimer()', 1000); 
    } 
 
}

checknet js (jquery plugin)

(function(b) { 
    b.fn.checknet = function(a) { 
        function c() { 
            window.checknet.windowIsActive = document.hidden || document.mozHidden || document.webkitHidden || document.msHidden ? !1 : !0 
        } 
 
        function d(a) { 
            window.checknet.windowIsActive && b.ajax({ 
                url: a, 
                cache: !1, 
                type: "HEAD" 
            }).done(function() { 
                window.checknet.conIsActive = !0 
            }).fail(function() { 
                window.checknet.conIsActive = !1 
            }).always(function() { 
                window.checknet.conIsActive ? (b("#netWarn").length && b("#netWarn").fadeOut("fast", function() { 
                        b(this).remove() 
                    }), b(".tempDisabled").removeAttr("disabled").removeClass("tempDisabled")) : 
                    (b("#netWarn").length || (b("body").prepend('<p id="netWarn">' + window.checknet.config.warnMsg + "</p>"), b("#netWarn").fadeIn("fast")), b('input[type="button"]').attr("disabled", "disabled").addClass("tempDisabled")) 
            }); 
            setTimeout(function() { 
                d(window.checknet.config.checkURL) 
            }, window.checknet.config.checkInterval) 
        } 
        a = a || {}; 
        a.checkURL = a.checkURL || window.location.href; 
        a.checkInterval = a.checkInterval || 5E3; 
		EXAM_TIME_LEFT +=1; 
        a.warnMsg = a.msg || "Tizim tarmoqdan uzildi. Balki internetinigz o'chgandir? Ushbu yozuv yo'qolganiga qadar, testdan foydalanmang!. "; - 1 === a.checkURL.indexOf("http") && (a.checkURL = "http://" + a.checkURL); 
        window.checknet = { 
            windowIsActive: !0, 
            conIsActive: !0, 
            config: a 
        }; 
        "undefined" !== typeof document.hidden ? document.addEventListener("visibilitychange", c) : "undefined" !== typeof document.webkitHidden ? document.addEventListener("webkitvisibilitychange", c) : "undefined" !== typeof document.mozHidden ? document.addEventListener("mozvisibilitychange", c) : "undefined" !== typeof document.msHidden && document.addEventListener("msvisibilitychange", c); 
        d(window.checknet.config.checkURL) 
    } 
})(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

READ ALSO
Вывод информации из json используя ajax

Вывод информации из json используя ajax

Используя api стороннего сервиса я отправляю информацию наших заказовНа этом сервисе у заказов 3 статуса: новые, активные и завершенные

98
Как поменять стиль элемента по определённому условию?

Как поменять стиль элемента по определённому условию?

Мне нужно по клику на кнопку перекрасить соседний див в синий цветКомпонент кнопка, и компонент див находятся на одном уровне

85
как присвоить данные в компоненте vue.js

как присвоить данные в компоненте vue.js

у меня есть 2 компонента, мне необходимо чтобы при срабатывание события в компоненте "А" данные присваивались в форму компонента "B",

78
Как реализовать кастомный ListView?

Как реализовать кастомный ListView?

Мне нужно сделать точно такое же вью как на скриншоте отмечено красной линией

131