Dynamisches Anpassen des SetInterval-Intervalls
Diese JavaScript-Funktion hat ursprünglich SetInterval aufgerufen, um eine Zeichenfolge in einem festen Intervall von 100 Millisekunden zu bearbeiten:
var interval = setInterval(function() { ... }, 100);
Der Benutzer wünschte jedoch, dieses Intervall basierend auf einem Schleifenzähler dynamisch anzupassen. Die Änderung in:
var interval = setInterval(function() { ... }, 10*counter);
hat sich als unwirksam erwiesen.
Lösung mit anonymer Funktion
Um das gewünschte Verhalten zu erreichen, kann eine anonyme Funktion verwendet werden :
var counter = 10; var myFunction = function(){ clearInterval(interval); counter *= 10; interval = setInterval(myFunction, counter); } var interval = setInterval(myFunction, counter);
Diese Funktion löscht wiederholt das aktuelle Intervall, multipliziert den Zähler mit 10 und setzt das Intervall mit zurück der aktualisierte Wert.
Aktualisierte Lösung mit setTimeout
Wie von A. Wolff vorgeschlagen, bietet setTimeout einen alternativen Ansatz, der die Notwendigkeit von „clearInterval“ überflüssig macht:
var counter = 10; var myFunction = function() { counter *= 10; setTimeout(myFunction, counter); } setTimeout(myFunction, counter);
Mit dieser Methode plant setTimeout die Funktion rekursiv mit dem neuen Intervall.
Das obige ist der detaillierte Inhalt vonWie kann ich das setInterval-Intervall in JavaScript dynamisch anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!