重复/循环javascript函数以检查cookie是否已更改

时间:2012-05-23 10:27:28

标签: javascript jquery loops cookies repeat

我正在尝试制作一个每5秒重复一次的脚本。

将重复的脚本将检查是否存在cookie 如果cookie不存在,则重定向页面 如果cookie确实存在,则不会发生任何事情。

Cookie工作正常,我唯一的问题是它不会重复!

我正在使用jQuery来识别/检查cookie,并且工作正常。

我想知道代码有什么问题。

我多次在网上看过,但找不到我需要的东西却没有运气 这是我使用的cookie插件:https://github.com/carhartl/jquery-cookie

var checkcookie = $.cookie('myCookie');

checklogin();
function checklogin(){
    setTimeout(function(){
        if(checkcookie == null){
            //if cookie not set
            window.location.href='/';
        }
        else{
            //if cookie set
        }

    }, 5000);

checklogin();//to recall the script after it is done
}

或者,如果任何人有另一种检查cookie是否已经改变的方法,我很想知道!

2 个答案:

答案 0 :(得分:2)

它工作正常,但你的cookie值没有改变 - 它设置一次且永远。尝试将其加入setTimeout()

checklogin();

function checklogin(){
    setTimeout(function(){
        var checkcookie = $.cookie('myCookie');

        if(checkcookie == null){
            window.location.href='/';
        }
        else{
            //if cookie set
        }

    }, 5000);

    checklogin(); //to recall the script after it is done
}

答案 1 :(得分:1)

如果你这样做,checklogin调用必须在setTimeout函数内,否则每次都会立即调用。

我也改用setInterval,所以你不需要递归函数:

setInterval(function(){
    if(checkcookie == null){
        window.location.href='/';
    }else{
        //if cookie set
    }
},5000);