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