Я делал это раньше, создав веб-метод в моем файле с выделенным кодом, который проверяет время ожидания. Пусть ваша функция Javascript получит информацию о тайм-ауте через AJAX и отобразит предупреждение согласно.
* ** 1003 тысяча два * Пример
Это веб-метод в моем коде:
[WebMethod]
public static bool HasSessionTimedOut()
{
HttpSessionState session = HttpContext.Current.Session;
// I put this value into Session at the beginning.
DateTime? sessionStart = session[SessionKeys.SessionStart] as DateTime?;
bool isTimeout = false;
if (!sessionStart.HasValue)
{
isTimeout = true;
}
else
{
TimeSpan elapsed = DateTime.Now - sessionStart.Value;
isTimeout = elapsed.TotalMinutes > session.Timeout;
}
return isTimeout;
}
А это мой Javascript:
<script type="text/javascript">
$(function() {
var callback = function(isTimeout) {
if (isTimeout) {
// Show your pop-up here...
}
};
setInterval(
function() {
// Don't forget to set EnablePageMethods="true" on your ScriptManager.
PageMethods.HasSessionTimedOut(false, callback);
},
30000
);
});
</script>
Итак, это довольно элементарно. Каждые 30 секунд моя функция Javascript отправляет запрос AJAX моему веб-методу с использованием объекта PageMethods в ASP.NET. Он проверяет возвращаемое значение true в обратном вызове, который указывает, что истекло время ожидания, и предпринимает соответствующее действие.