У нас есть устаревшее приложение (смесь классического ASP и ASP.net), в котором есть несколько страниц, обогащенных Ajax-содержимым. Ожидается, что пользователи сайта выполнят ряд задач на странице, которые могут охватывать значительное количество время скажем, 15-30 минут.
Одно из требований заключается в том, чтобы пользователи, входящие на сайт, автоматически выходили из системы после 15 минут бездействия. В настоящее время это достигается путем использования метатегов для перенаправления пользователя на страницу выхода из системы после 15 минут бездействия на странице.
<meta name='Refresh' http-equiv="Refresh" content="900;URL=/someurl/logout.asp">
Проблема, с которой мы сталкиваемся, заключается в том, что браузер не считает, что на странице была какая-либо активность, несмотря на то, что AJAX взаимодействует с сервером много раз. Поэтому после 15 минут, которые браузер считает неактивными, пользователь автоматически выходит из системы, даже если он что-то предпринимает.
Вдохновленный этим сообщением на доске объявлений , мы попытались исправить раздражение, используя javascript (JQuery), например, так:
Ниже приведен обработчик событий, такой как нажатие кнопки сохранения на странице и т. Д. Для простоты здесь указана загрузка страницы для изменения времени обновления до 5 секунд
$(document).ready(function() {
var selector = 'meta[name=Refresh]';
var content = $(selector).attr("content"); //"900;URL=/someurl/logout.asp"
$(selector).attr("content", "5;URL=/someurl/logout.asp");
});
Намерение (пере) установить метатег содержимого таймера обновления страницы будет сброшено. К сожалению, это не похоже на работу (в IE).
Поскольку это унаследованное приложение, некоторые решения, например, об использовании метатегов и т. Д., Принимаются во внимание. Вопрос в том, есть ли способ обновить метатег, чтобы мирно сосуществовать с приложением Ajax? Я делаю что-то не так и есть ли способ решить эту проблему?