Я использую https://github.com/ehynds/jquery-idle-timeout для создания таймера простоя стиля монетного двора, который выполняет вызов Ajax на странице «keep-alive».jQuery привязка события Ajax
У меня также есть часть Javascript для формы формы Ajax, которая выводит сообщение «Подождите», чтобы предупредить пользователя о том, что активность происходит, хотя страницы не загружаются.
По какой-то причине функция toggleAjaxLoader() привязана к ajax: before и ajax: завершает события каждый раз, когда подсчитывается страница keep alive. Я не хочу этого, поскольку это путаница для пользователя. Почему это должно быть обязательным для idletimeout и/или как я могу развернуть то, что происходит?
Загрузка анимации:
// Toggles our animated ajax loader image
function toggleAjaxLoader() {
jQuery('#ajax_loader').toggle();
}
Idle тайм-аут:
/*
* Inactivity notifier and auto logout
*/
jQuery(function(){
var redirectToURL = getAbsoluteUrl('/logout/auto=true'); // URL to relocate the user to once they have timed out
var keepAlive = getAbsoluteUrl('/keep-alive');
if (jQuery("#idletimeout").length) {
$.idleTimeout('#idletimeout', '#idletimeout a', {
idleAfter: 2700, // 45 minutes
warningLength: 60, // number of seconds to wait before redirecting the user
keepAliveURL: keepAlive,
AJAXTimeout: 2500,
pollingInterval: 5, // 60
expiredMessage: 'Your session has expired. You are being logged out for security reasons.', // message to show user when the countdown reaches 0
onTimeout: function(){
$(this).slideUp();
window.location.replace(redirectToURL);
},
onIdle: function(){
$(this).slideDown(); // show the warning bar
},
onCountdown: function(counter){
$(this).find("span").html(counter); // update the counter
},
onResume: function(){
$(this).slideUp(); // hide the warning bar
// Tums.bump_tums_session(session[:user].session['sessionGuid']);
}
});
};
});
Отлично, я предлагаю вам принять свой собственный ответ – davidkonrad