2016-07-31 6 views
2

Der Code wird 1 warnen, wenn der Text im Element gerendert wird. (kommt von externem JSON-Bit, das langsam geladen wird). Ich habe es funktioniert. Die einzige negative Seite ist, dass es weiter läuft, auch wenn es wahr ist.Schleife mehr CPU freundlich Js

Ich möchte die Schleife, um zu überprüfen, ob der Text hat alle 5 Sekunden zu rendern und zu stoppen, wenn es fertig ist.

setInterval(function() { 
    var text = $('#des1').text().length; 
    if (text > 1) { 
    setTimeout(function() { 
     var e = $("a.urlcouint").length 
     for (var t = 0; t < e; t++) { 
     var l = document.getElementById("xurl").href; 
     var n = l.indexOf("://") > -1 ? l.split("/")[2] : l.split("/")[0]; 
     n = n.split(":")[0]; 
     document.getElementById("xurl").innerHTML = n; 
     document.getElementById("xurl").setAttribute("id", "xurldone"); 
     } 
    }, 5); 
    alert(1); 
    } else { 
    alert(0); 
    } 
}, 2000); 
+0

Bitte senden Sie lesbaren Code auf der clearInterval Methode suchen, wenn Fragen zu stellen. – Oriol

Antwort

3

Sie benötigen

var interval = setInterval(function() { 
// do something here 
    // When a condition is met and you want to kill the timeout 
    clearInterval(interval); 
}, 2000);