AJAX功能可检测会话何时过期并注销 - javascript

我具有此功能,用于检查当前选项卡中的会话是否已过期。但是,如果我打开另一个选项卡并从那里退出,则直到我从导航菜单访问项目之前,我的当前选项卡都不会知道,并且它将以某种方式保持其会话状态。有没有一种方法可以通过检测用户何时注销或用户会话是否已过期来改善此问题?

现在的主要问题是,如果他们打开另一个选项卡,然后从那里注销。

function check_if_logged_in(){
    $.ajax({
        method: "POST",
        url: "<?php echo site_url('Common/CheckSession'); ?>",
        beforeSend: function () {
            $('.loading').show();
        },
        success: function(data){
            if(data==="undefined"||data===null||data===0){
                console.log("logged out");
//                window.location.replace("<?php // echo BASE_URL;?>");
            }else{
                console.log("logged in");
            }
            $('.loading').fadeOut("slow");
        },
    });
}

这是我的checkSession函数

public function checkSession(){
        if($this->logged_in()===false){
            echo false;
        }else{
            echo true;
        }
    }

this-> logged_in()仅检查会话是否仍处于活动状态。

我已经阅读了有关HTML5的LocalStorage的信息。我想知道这是否会影响移动设备,因为该站点本身具有响应能力,而且我听说iOS或某些设备不支持LocalStorage。

参考方案

您应该编写一个可以在每个文件中访问的js函数。最有可能在您的页脚中。

然后编写以下代码,每5秒钟间隔调用一次(您可以根据自己的需要进行更改)。

 $( document ).ready(function() {
    setInterval(function () {
        checkSession();
    }, 5000);
});


function checkSession()
{
    $.ajax({
        type: "POST",
        url: "your_session_checking_function",
        success: function (data) {
            data = JSON.parse(data);
            if(data.response != "true")
            {   
                window.location.href = 'redirect to login page';  
            }
        }
    });
}

然后根据ajax成功获得的结果,可以将其重定向到登录页面。

PHP Javascript更改浏览器后退按钮行为Laravel - javascript

我知道有各种各样的线程要求几乎相同的要求,但似乎没有一个真正满足我的需求。在我的网站上,我实现了搜索表单。一个简单的表单,其中包含一个名为searchQuery的输入字段和一个提交按钮。表单通过POST方法发送。我正在使用Laravel btw。。然后将搜索结果从控制器加载到视图中。这些在表中显示。现在来了有趣的部分:找到的元素是可单击的,并且您进入有关该元…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

和字符中断通过PHP接收JSON - javascript

我有一个包含更多对象的数组。如果一个对象包含&字符,则php不会接收&之后的每个对象。可能是什么问题?这就是阿贾克斯xmlhttp.open("POST", "get.php"); xmlhttp.setRequestHeader("Content-Type", "application/…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

PHP json_encode数组到javascript关联数组 - javascript

我有一些从PHP中读取的mysqli列。它正在完美地获取和回显。$results = mysqli_fetch_assoc(mysqli_query($conn, $querystring)); echo json_encode($results); //$results = {"title":"Sea Shells"…