Javascript beendet Schleife
    
Nik
    
    
      
    
  - javascript
 
0 Nik
Hallo,
darf dieses Javascript aufhören, zu arbeiten, falls die Serververbindung abreißt?
Eigentlich soll es durchgehend arbeiten und zwar unter allen denkbaren Umständen, solange die Seite clientseitig besteht.
  
<script type=\"text/javascript\">  
$(document).ready(function(){  
  my_func = function(){  
    $.ajax({  
    	type: \"POST\",  
    	url: \"reload.php\",  
    	dataType: \"json\",  
    	success: function(data){  
		//...  
        window.setTimeout(\"my_func()\", 20000);  
    	},  
    	error: function() {  
		window.setTimeout(\"my_func()\", 1000);  
    	}  
    });  
  };  
  window.setTimeout(\"my_func()\", 20000);  
});  
</script>  
Nik
Hallo,
darf dieses Javascript aufhören, zu arbeiten, falls die Serververbindung abreißt?
Ich meinte natürlich:
<script type='text/javascript'>  
$(document).ready(function(){  
  my_func = function(){  
    $.ajax({  
    	type: 'POST',  
    	url: 'reload.php',  
    	dataType: 'json',  
    	success: function(data){  
		//...  
        window.setTimeout('my_func()', 20000);  
    	},  
    	error: function() {  
		window.setTimeout('my_func()', 1000);  
    	}  
    });  
  };  
  window.setTimeout('my_func()', 20000);  
});  
</script>
  Irgend welche Fehlermeldungen?
Schau dir im Übrigen mal Websockets und Server-Sent-Events an, das sind zwei elegante Alternativen zu selbstgestrickten Short-Polling-Ansätzen.
Noch paar Kleinigkeiten:
 my_func = function(){ //...
my_func wird hier als globale Variable angelegt, weil du das var-Keyword vergessen hast.
window.setTimeout('my_func()', 20000);
Diese Syntax ist recht verpönt, sie steht ungefähr auf dem selben Level wie eval().
Heute schreibt man stattdessen:
window.setTimeout(my_func, 20000);