我尝试为前端用户编写Joomla会话倒计时。 但是在会话延期时我有问题要识别。
我现在的代码
<body data-sesja="<?php echo JFactory::getSession()->getExpire() ; ?>">
和JS
//getting session time
var licznik = $('body').data('sesja');
//PROBLEM IS HERE - becouse not all events extenting the session time
$('body').on('mousedown keyup', function(){
licznik = $('body').data('sesja');
});
//creating counter object
var licznikObj = window.setInterval(function() {
licznik--;
$('.licznik').text(licznik);
if (licznik == 0) {
window.clearInterval(licznikObj);
$('.licznik-info, .licznik').each(function(){
$(this).remove();
});
$(".licznik-msg").text("Twoja sesja wygasła! Zaloguj ponownie.");
}
}, 1000);
所以我的问题是:女巫事件延长了Joomla 2.5会话时间?
答案 0 :(得分:2)
因为我并不是你想要做的事情,但我将简要介绍会议在Joomla中的工作方式。
默认会话是在用户第一次遇到网站时创建的。
当用户登录时,会话与其用户记录相结合,以便框架将在以下请求中自动进行身份验证。这些会话cookie通常在没有到期时间的情况下发送给客户端,因此在浏览器会话结束之前是有效的(在客户端)。
如果用户勾选“记住我”框,则会根据您的配置设置明确的到期日期,通常是未来几天。
另一方面,在服务器端,无论客户端存储什么,都存储到期时间。默认会话长度为15分钟(900秒)。
如果用户在此期间发出了另一个请求,会话将延长另一个时间段(从当前请求的时间开始)。
有一个行为声明(JHtml::_('behavior.keepalive');
)生成一个脚本,通过重复向服务器发送AJAX请求来阻止会话过期,通常在设置为过期前1分钟。
此行为在前端经常使用。
我希望这能帮助您获得所需的结果。我无法调查我不拥有的商业扩展的特定视图的行为。