2012-03-22 9 views
1

我有一個檢查cookie的小腳本,我想知道如何做到這一點,以便自動執行此操作而不是在頁面刷新上執行此操作。jQuery循環代碼自動..ajax?

我的代碼是:

if(!$.cookie("popbox")){ 
    if(!$.cookie("visited") && !$.cookie("firstvisit")){ 
     var expirydate = new Date(); 
     expirydate.setTime(expirydate.getTime() + (1 * 60 * 1000)); 
     $.cookie("popbox", "feedback_popup", { expires: expirydate }); 
     $.cookie("firstvisit", 1, { expires: 9999 }); 
    } else { 
     if(!$.cookie("visited") && $.cookie("firstvisit")){ 
     showPopuptimer(); 
     } 
    } 
} 

回答

0

如果你的意思是你想要的代碼爲定期運行,同時正在顯示的頁面,你可以使用setInterval,這將調用函數你給它一個特定的時間間隔(或者鏈接的一系列setTimeout調用(setTimeout調用您給它的函數一次;然後您可以再次調用函數setTimeout)。 (這些鏈接是Mozilla文檔,但這些調用存在於所有瀏覽器中。)

我傾向於傾向於調用setTimeout調用的鏈接系列,因爲它們更難讓它們遠離您; setInterval只會繼續發生,除非您在返回的句柄上調用clearInterval

因此,例如:

checkTheCookies(); // The initial check on page load 
function checkTheCookies() { 
    if(!$.cookie("popbox")){ 
     if(!$.cookie("visited") && !$.cookie("firstvisit")){ 
      var expirydate = new Date(); 
      expirydate.setTime(expirydate.getTime() + (1 * 60 * 1000)); 
      $.cookie("popbox", "feedback_popup", { expires: expirydate }); 
      $.cookie("firstvisit", 1, { expires: 9999 }); 
     } else { 
      if(!$.cookie("visited") && $.cookie("firstvisit")){ 
      showPopuptimer(); 
      } 
     } 
    } 

    // Schedule the next check 15 seconds later (time in milliseconds) 
    setTimeout(checkTheCookies, 150000); 
} 

您可能需要在那裏,如果你有某種彈出顯示的,不想做檢查,同時彈出有一個if

+0

得到了setInterval這個工作 - 它確實也是我想要的!謝謝:) – 2012-03-22 15:16:20

+0

@green_arrow:很高興幫助! – 2012-05-30 11:50:51