2013-06-04 5 views
1

Я работаю над толстым клиентским приложением, которое использует JavaScript и jQuery. Моя сессия отключается, если она оставлена ​​бездействующей в течение 45 секунд или более (в зависимости от разных бизнес-пользователей).Отображение таймера с использованием Javascript/JQuery

В настоящее время событие таймаута запускается кодом поставщика, к которому у меня нет доступа. Я хотел бы отобразить таймер на экране, если сеанс окажется недействительным за пределами определенного временного порога (например, 25 секунд).

В то же время таймер также должен соответствовать (управление предельной разницей) с таймером третьей стороны (к которому у меня нет доступа).

Может кто-нибудь предложить лучшее решение для этого?

+0

Вы пробовали что-нибудь? –

ответ

1

Halo,

я наконец-то удалось попробовать таймер в моем приложении (сенсорный основе). Следующий код хорошо работает для меня.

var count = 50; 
$(document).ready(function() { 
var Timer = $.timer(function() { 
    $('#counter').html("Your Session will expire in " + --count + "seconds"); 

}); 
Timer.set({ time : 1000, autostart : true }); 
    $(this).mousemove(function (e) { 
       idleTime = 0; 
       count = 50; 
       Timer.reset(); 
       Timer.stop();     
      }); 
      $(this).keypress(function (e) { 
       idleTime = 0; 
       count = 50; 
       Timer.stop(); 
       Timer.reset(); 
      }); 

    var idleInterval = setInterval(function(){ 
     idleTime = idleTime + 1; 
     if (idleTime > 10) 
     { 
     Timer.set({ time : 600, autostart : true });    
     $('#counter').css("display", "block"); 
1

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

Однако, чтобы дать вам несколько указателей, взгляните на JavaScript window.setTimeout() method. По сути, это вызывает обратный вызов через заданный период времени. Можно с уверенностью сказать, что если ваш поставщик использует JavaScript для отслеживания времени, то это тот же базовый метод, который они будут использовать.

Вы можете установить и сбросить timeout очень легко, поэтому после установки вы можете прослушивать события взаимодействия с пользователем (прокрутка, щелчок и т. Д.) И использовать их для запуска сброса по таймауту (возврат «обратного отсчета» обратно к начало).

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

Что касается взаимодействия с тайм-аутом вашего поставщика, без дополнительной информации никто из нас не сможет помочь. Не похоже, что у вас есть контроль над этим, поэтому это может быть невозможно (возможно, обратитесь к поставщику и спросите?).

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

TL/DR: Читайте в JavaScript window.setTimeout() method, если вы хотите написать что-то, что будет делать то, что вы описали. Тем не менее, слабая ссылка будет заключаться в том, что у вас нет доступа к процедурам тайм-аута вашего поставщика. Имея это в виду, моим первым шагом было бы связаться с продавцом и спросить, у них может быть что-то в их API уже доступное, о котором вы не знаете!

+0

Привет, Джон и Мэтт, я новичок в JS и JQuery. Я попробовал несколько вещей, которые я нашел в Интернете ...Но позже выяснилось, что это может не соответствовать цели (я могу ошибаться в этом). Вот почему решили попросить экспертов, а не копать их самостоятельно. – Subash

Смежные вопросы