Heim >Web-Frontend >js-Tutorial >Wie kann ich das setInterval-Intervall in JavaScript dynamisch anpassen?

Wie kann ich das setInterval-Intervall in JavaScript dynamisch anpassen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-27 10:35:39622Durchsuche

How Can I Dynamically Adjust the setInterval Interval in JavaScript?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn