2012-03-22 1 views
1

J'ai un petit script qui vérifie les cookies et je me demandais comment je pouvais le faire afin qu'il le fasse automatiquement plutôt que sur l'actualisation de la page?jQuery code de boucle automatiquement..ajax?

Mon code est:

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(); 
     } 
    } 
} 

Répondre

0

Si vous voulez dire que vous voulez que le code à exécuter périodiquement alors que la page est affichée, vous pouvez utiliser setInterval, qui fera appel à la fonction que vous donnez sur un intervalle spécifique (plus ou moins), ou une série chaînée de setTimeout appels (setTimeout appelle la fonction que vous lui donnez une fois, vous auriez alors la fonction appeler à nouveau setTimeout). (Ces liens sont à la documentation de Mozilla, mais ces appels existent dans tous les navigateurs.)

J'ai tendance à préférer les séries chaînées d'appels setTimeout parce qu'il est plus difficile de les faire s'éloigner de vous; setInterval continue de se produire jusqu'à ce que vous appeliez le clearInterval sur la poignée qu'il renvoie.

Ainsi, par exemple:

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); 
} 

Vous pourriez avoir besoin d'un if là-bas pour si vous avez une sorte de pop-up montrant et ne veulent pas faire le contrôle alors que le pop-up est là.

+0

Cela fonctionne avec setInterval - il fait exactement ce que je veux aussi! Merci :) –

+0

@green_arrow: Heureux qui a aidé! –