Jan K.: Ausgabe eines Arrayelements alle 500ms

Beitrag lesen

Hallo zusammen,

ich habe bisher die Sortierfunktion eines meiner Scripte per PHP gelöst, will es aber nun doch lieber dem Client überlassen und möchte es per Javascript realisieren.

Leider habe ich kaum Ahnung von Javascript und fage mich nun ersteinmal wie ich alle 500ms einen Datensatz ausgeben könnte. Dazu habe ich folgendes probiert.

  
<?php  
  
#......  
#......SQLite querys, speicherung aller Datensätze im Array $names  
#......  
  
  
echo'<html>  
<head>  
<title>Javascript Arrays</title>  
<script type="text/javascript">  
<!--  
';  
$i=1;  
$anzahl=count($names)-1;  
$string="\n";  
foreach( $names as $value1) {  
  if($i==$anzahl+1){$komma="";}else{$komma=",";}  
  $string=$string.'new Array("'.$value1[nickname].'",'.'"'.$value1[totalherodeath].'",'.'"'.$value1[totalherokills].'",'.'"'.$value1[totalassists]  
  .'",'.'"'.$value1[totalcreepkills].'",'.'"'.$value1[totaldenies].'",'.'"'.$value1[neutralkills].'")'.$komma."\n";  
$i++;  
}  
echo'var inhalt = new Array('.$string.');';  
echo'  
-->  
</script>  
</head>  
<body>  
';  
  
echo'  
<script type="text/javascript">  
var zaehler=0;  
function ausgabe(){  
  document.write(inhalt[zaehler]+"<br>");  
  zaehler++;  
  //if(zaehler<inhalt.length){ausgabe();}  
  if(zaehler<inhalt.length){setTimeout("ausgabe()",500);}  
}  
ausgabe();  
</script>  
';  
  
echo'  
</body>  
</html>  
';  
?>  

Sämmtliche Datensätze aufeinmal mit if(zaehler<inhalt.length){ausgabe();} auszugeben funktioniert, aber der Ansatz es verzögert mit if(zaehler<inhalt.length){setTimeout("ausgabe()",500);}auszugeben scheitert. Es wird nur ein Datensatz ausgegeben, danach bleibt der Browser beim laden stecken.

Welchen Fehler mache ich hier?

Gruß,
Jan