2012-05-23 80 views
0

我正在嘗試創建一個腳本,每5秒重複一次。重複/循環javascript函數來檢查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

它工作正常,但你的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 
} 
+0

謝謝!我把你的和安迪的組合起來,效果很棒! –

1

如果你正在做這樣的checklogin調用必須是setTimeout函數,否則這就是所謂的立即每次內。

而且我會使用一個的setInterval代替,這樣你就不會需要你的遞歸函數:

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

謝謝!我把你的和Zoltan的組合起來,效果很棒! –