2010-07-25 2 views
0

Donc, idéalement, voici ce que je suis en train d'accomplir (garder à l'esprit que je suis un débutant, donc supporter avec moi):comment coder une minuterie jquery propre à mon goût

Création d'une application qui à x intervalle (jouons avec l'intervalle x = 15 minutes) une notification apparaît, invitant l'utilisateur à prendre l'action. Donc, toutes les 15 minutes, agissez (donc vous savez, pour les alerter, ce sera un flash du navigateur et un scintillement/changement de titre). Si l'utilisateur prend des mesures, réinitialiser le minuteur pour un autre montant x (encore une fois, permet de jouer avec x = 15 minutes). S'ils n'agissent pas, continuez à faire clignoter la fenêtre du navigateur et changez de titre. Des suggestions sur la façon d'accomplir cela? Merci beaucoup.

Répondre

1

Vous devez utiliser setTimeout pour cela. Il existe une autre fonction, setInterval, mais vous ne voulez pas que l'événement se produise tant que l'utilisateur n'a pas encore cliqué sur la notification (après 15 minutes, une notification apparaît, mais si l'utilisateur n'a pas ignoré la notification, ne veux pas que l'événement se répète).

SetTimer fonctionne de la manière suivante:

setTimeout(code,millisec,lang) 
Code

est une référence à la fonction ou le code à exécuter. Millisec est le nombre de millisecondes à attendre avant d'exécuter le code. lang est facultatif. Il est le langage de script: JScript, VBScript ou JavaScript

pour vos besoins, vous pouvez utiliser:

function setNextTimeout() { 
    // 15 minutes * 60 seconds * 1000 milliseconds 
    var t=setTimeout("displayAlert()", 15 * 60 * 1000) 
} 

function displayAlert() { 
    alert('I am displayed after 15 minutes!'); 
    setNextTimeout(); 
} 

setNextTimeout(); 
+0

Comment puis-je prendre en compte un événement utilisateur - lets, pour cet exemple, par exemple sur le mouvement de la souris de l'utilisateur - simplement parce que si elles sont sur la fenêtre courante et bougent, ou passent d'une autre, cela fonctionnera - que suggérez-vous? – Brian

+0

Pour cela, vous devrez utiliser un gestionnaire d'événement onmousemove et réinitialiser le minuteur si vous le voyez se produire. Voici quelques informations que j'ai googled: http://www.quirksmode.org/js/events_mouse.html – umop

Questions connexes