2008-09-15 3 views

Antwort

0

Vielleicht versuchen mit Hilfe einer Zeitschaltuhr, die das nächste Bild ruft jedes Mal, es tickt, leider weiß ich nicht JavaScript, damit ich kann kein Codebeispiel bereitstellen

3

Sie sollten einen Timer verwenden, um kontinuierlich neue Bilder anstelle einer Endlosschleife zu erstellen. Überprüfen Sie die Funktion setTimeout(). Der Vorbehalt ist, dass Sie es in einer Funktion aufrufen sollten, die sich selbst aufruft, damit es wieder wartet. Beispiel aus w3schools

<html> 
<head> 
<script type="text/javascript"> 
var c=0 
var t 
function timedCount() 
{ 
document.getElementById('txt').value=c; 
c=c+1; 
t=setTimeout("timedCount()",1000); 
} 
</script> 
</head> 

<body> 
<form> 
<input type="button" value="Start count!" 
onClick="timedCount()"> 
<input type="text" id="txt"> 
</form> 
</body> 

</html> 
+0

Dies ist mehr verschachtelt als einfach mit setInterval ... –

+0

Sie sollten 'timedCount' anstelle von' "timedCount()" 'verwenden. Es gibt keinen Grund, warum Sie den Funktionsaufruf auswerten müssen, statt die Funktion direkt zu übergeben. –

1

Statt einer Endlosschleife zu verwenden, einen Timer machen, die alle n Sekunden Brennen halten - Sie erhalten den ‚läuft immer‘ Aspekt ohne den Browser hängen.

0
function foo() { 
    alert('hi'); 
    setTimeout(foo, 5000); 
} 

dann nur eine Aktion, wie „onload“ Verwendung ‚foo‘

2

Der folgende Code kick off wird ein Intervall eingestellt, und das Bild auf das nächste Bild aus einer Anordnung von Bildquellen in jeder Sekunde eingestellt.

function setImage(){ 
    var Static = arguments.callee; 
    Static.currentImage = (Static.currentImage || 0); 
    var elm = document.getElementById("imageContainer"); 
    elm.src = imageArray[Static.currentImage++]; 
} 
imageInterval = setInterval(setImage, 1000); 
0

Wenn es Ihren Fall paßt, können Sie neue Bilder halten Laden auf Benutzerinteraktionen zu reagieren, wie this website does (nur nach unten scrollen).

0

Nur eine formale Antwort:

var i = 0; 

while (i < 1) { 
    do something... 

    if (i < 1) i = 0; 
    else i = fooling_function(i); // must return 0 
} 

Ich denke, kein Browser solche Dinge erkennen würde.

+0

Thevs, Browser werden Sie auffordern, wenn _any_ Operation zu lange dauert. Ihre Schleife ist kein Ausschluss. Die einzige Möglichkeit besteht darin, setInterval/setTimeout (wie bereits erwähnt) zu verwenden. –