首页 > 解决方案 > 引导会话超时,外部重置计时器

问题描述

https://github.com/orangehill/bootstrap-session-timeout 在 _Layout.cshtml 中有我们使用的 jquery 插件进行这样的初始化

 $(document).ready(function () {
                $.sessionTimeout({
                    keepAliveUrl: '/Account/KeepSessionAlive/',
                    logoutUrl: '/Account/LogOff/',
                    redirUrl: '/Account/SessionExpired/',
                    ignoreUserActivity: true,
                    warnAfter: 700000,
                    redirAfter: 720000,
                    countdownBar: true,
                    keepAliveInterval: 1000000
                });
            });  

因此,我们不关注用户活动,并且弹出窗口总是同时出现。但是现在,我们有了第 3 方的东西(在单独的窗口中在线聊天)。因此,如果用户仅聊天,则计时器结束并显示引导弹出窗口。任务不仅是向控制器的 KeepSessionAlive 方法发送 ping,还要重置会话超时插件内部的计时器。

例如,如果不触摸任何东西,插件的弹出窗口会在 11 分 30 秒出现。例如,如果我在 2 分钟更新计时器并发布 ping,则弹出窗口应出现在 13 分 30 秒。

这是来自第 3 方聊天的事件监听器:

window.addEventListener('message', function (event) {
                    // Ping server and update timer here
                });

请提出解决方案。谢谢

标签: javascriptjqueryasp.net-coresession-timeout

解决方案


通过事件处理修复了 如何在 JavaScript 中触发事件?

但是很高兴听到另一种解决方案,因为几乎一整天都在用这个:(


推荐阅读