Как предотвратить функцию тайм-аута javascript?

веб-сайт, который я часто использую следующий javascript

    function idle() {
     $(document).unbind('mousemove');
     $(document).unbind('keydown');
     $(document).on('mousemove', function () {
         resetTimebomb('keydown');
     });
     $(document).on('keydown', function () {
         resetTimebomb('mousemove');
     });
     setTimeout('idle();', 60000);
 }

 function resetTimebomb(psUnbind) {
     $(document).unbind(psUnbind);
     $.ajax({
         global: false,
         url: '/internal/reset_timebomb.php',
         success: function (sData) {
             if ($.trim(sData).length && sData != 'STILL_LOGGED_IN') {
                 timeout();
             }
         }
     });
 }

 function timeout() {
     var sReturnTo = '&return_to=' + encodeURIComponent(window.location.pathname + window.location.search);
     var sReturnToUser = typeof (iLoggedInUserID) != 'undefined' ? '&return_to_user=' + iLoggedInUserID.toString() : '';
     window.location = '/index.php?message=TIMEOUT' + sReturnTo + sReturnToUser;
 }

и что js появляется в середине файла js длиной в тысячи строк. Этот js вызывает автоматический выход из системы после довольно короткой продолжительности, и я хотел бы, чтобы он не загружался так быстро. Тайм-аут "60000", кажется 10 минут. Любыми способами, я бы хотел либо

1)увеличить время ожидания, или


2) исключите функции тайм-аута все вместе, или


3) имитировать активность, даже если окно не находится в фокусе, чтобы вызвать сброс тайм-аута.

Я бы использовал что-то вроде NoScript, но мне нужно разрешить все другие скрипты на странице. Именно эти конкретные функции, в середине массивного файла, мне нужно подорвать.

спасибо.

Я был бы очень благодарен, если бы решение включало использование моего маршрутизатора, который запускает вариант прошивки Tomato, так что все мои устройства, включая планшет, могут извлечь выгоду из решения.

12
задан Judith
15.05.2023 18:42 Количество просмотров материала 2797
Распечатать страницу

1 ответ

нет нет нет..у вас есть некоторые заблуждения.

  1. таймаут "60000", кажется, 10 минут

    60000milliseconds = 60 секунд = 1 минута

  2. setTimeout в основном дает вам отсрочку.Это не таймер.Это просто значит, что в вашем случае function idle() будет выполнено после 1 минута.

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

просто изменить одну строку..

success: function (sData) {
    if ($.trim(sData).length && sData != 'STILL_LOGGED_IN') {
        timeout();//erase this like,comment it out.
    }

преобразовать это:

  if ($.trim(sData).length && sData != 'STILL_LOGGED_IN') {

    }

timeout() перенаправляет вас через некоторое время..чтобы избежать этого просто не называйте его.

0
отвечен JETHALAL 2023-05-17 02:30

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх