2011-08-17 3 views
0

Je travaille sur une application, où j'ai une page dont le contenu partiel doit être mis à jour dans un intervalle. Je pense utiliser setInterval JavaScript pour faire cette tâche, mais je n'ai pas utilisé cette méthode auparavant, alors comment puis-je démarrer setinterval lorsque cette page spécifique est chargée et arrêter setinterval avant la page déchargée. En passant, si vous connaissez une meilleure façon de faire ce genre de tâche, s'il vous plaît être aimable à partager avec moi. Merci pour toute aide.Comment implémenter le client pull javascript

Répondre

1

Étant donné que vous avez une fonction

function myFunction() { 
    ... 
} 

Pour exécuter toutes n millisecondes, utilisez

setInterval(myFunction, n); 

Vous ne aurez pas besoin d'arrêter l'intervalle vous-même lorsque la page est « déchargé » ou traversé loin de; ceci est fait automatiquement. Si, toutefois, vous souhaitez l'arrêter à tout autre moment, puis enregistrez la valeur de retour de setInterval lorsque vous l'utilisez, comme ceci:

var timer_id = setInterval(myFunction, n); 

et l'utiliser pour arrêter le chronomètre d'intervalle:

clearInterval(timer_id); 
+0

remerciements pour répondre, j'utilise setInterval (myFunction, n); Dans myfunction je mets alert ('test'), mais le popup 'test' reste quand je navigue vers une autre page. une idée pourquoi? – bingjie2680

+0

Que voulez-vous dire, exactement, quand vous dites que vous «naviguez vers une autre page»? –

+0

aller d'une page à une autre page. vous savez que j'ai seulement besoin de la mise à jour pour une page spécifique. – bingjie2680

-1

Pour démarrer la minuterie, vous appelez simplement setInterval au chargement de la page. Vous n'avez pas besoin d'arrêter la minuterie car elle s'arrêtera automatiquement lorsque la page sera déchargée.

Voici un exemple copié sur le site Web de W3Schools qui montre aussi comment arrêter manuellement la minuterie si nécessaire via clearInterval:

http://www.w3schools.com/jsref/met_win_setinterval.asp

<html> 
<body> 

<input type="text" id="clock" /> 
<script language=javascript> 
var int=self.setInterval("clock()",1000); 
function clock() 
    { 
    var d=new Date(); 
    var t=d.toLocaleTimeString(); 
    document.getElementById("clock").value=t; 
    } 
</script> 
</form> 
<button onclick="int=window.clearInterval(int)">Stop</button> 

</body> 
</html> 
+0

C'est un très mauvais exemple de code pour plusieurs raisons (pas de doctype, utilisation de l'auto-fermeture en HTML, passage à 'setInterval', utilisation d'un mot-clé réservé, utilisation de l'attribut' language' et utilisation des gestionnaires d'événements). S'il vous plaît ne pas se référer à w3schools.com. Pour plus d'informations, voir http://w3fools.com/ –

Questions connexes