Nik: Javascript beendet Schleife

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

  1. 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>
    
    1. Irgend welche Fehlermeldungen?

      Jörg Reinholz

    2. Nicht nachvollziehbar.

      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);