Changement setInterval valeur dynamiquement
Je veux changer la valeur de l'intervalle de setInterval de façon dynamique. Je suis en difficulté en raison de la présence d'une boucle en setInterval fonction de rappel. J'ai vu trop de questions sur stackoverflow. Mais il n'y a aucune solution qui peut m'aider. Si quelqu'un connais la réponse alors s'il vous plaît expliquer avec un exemple. Je Vous Remercie.
Voici mon code.
<html>
<head>
<script type="text/javascript">
var speed = 10;
function updateSlider(slideAmount) {
speed = slideAmount;
}
function load() {
downloadUrl("points.xml", function (data) {
/* code */
abc();
});
function abc() {
function track() {
/* code */
downloadUrl("points.xml", function (data) {
var xml = data.responseXML;
var points = xml.documentElement.getElementsByTagName("point");
var i = 0;
setInterval(function () {
if (i != points.length) {
alert(speed);
}
i++;
}, 100 * speed);
});
}
track();
}
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
request.onreadystatechange = function () {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.setRequestHeader("Content-type", "text/xml");
request.send(null);
}
function doNothing() {
}
</script>
</head>
<body onload="load();">
<div id="slider">
5% <input id="slide" type="range" min="1" max="20" step="5" value="10" onchange="updateSlider(this.value)" /> 200%
</div>
<div id="chosen">10</div>
</body>
Une fois qu'un intervalle est défini, il ne peut pas être modifiée, mais il peut être arrêté avec
Vous pouvez cette réponse
clearInterval
et de réinitialisation. Pour vos besoins, utilisez setTimeout
et à maintes reprises à nouveau avec le changement de la valeur de délai d'expiration.Vous pouvez cette réponse
OriginalL'auteur Akshay Vaghasiya | 2015-06-09
Vous devez vous connecter pour publier un commentaire.
C'est une version sans setInterval j'utilise toujours:
Utilisation:
Le dernier paramètre de la fonction de démarrage est un booléen si la fonction doit être exécuté à 0.
Vous pouvez également trouver le script ici: https://github.com/Atticweb/smart-interval
OriginalL'auteur Atticweb