Ajax Nachricht an den Server senden
Generic1
- javascript
0 Ole2 Der Martin0 Generic11 Der Martin0 Jeena Paradies0 Struppi
0 Struppi0 Generic10 Struppi
Hallo,
in meiner Anwendung möchte ich z.B.: alle 10s eine Anfrage an den Server asynchron über AJAX senden.
Jetzt ist mir klar, dass es mit JavaScript nicht möglich ist, einen Thread zu erzeugen, der dies macht,
Meine Frage wäre, wie ich das am Besten machen könnte?
lg
Hi,
Meine Frage wäre, wie ich das am Besten machen könnte?
Wenn mit JavaScript, dann wohl mit setTimeout oder setInterval.
Gruß
Ole
Hallo,
Wenn mit JavaScript, dann wohl mit setTimeout oder setInterval.
mit setInterval wäre ich vorsichtig. Zwar sind 10s eine lange Zeit, aber bei Störungen im Netz kann es durchaus mal sein, dass ein Request in 10s noch nicht beantwortet ist. Und dann "überholen" sich die Anfragen, was meistens unerwünscht ist und zu Problemen führen kann.
Also lieber die nächste Anfrage mit setTimeout auslösen, sobald die Antwort zur vorhergehenden Anfrage da ist.
Ciao,
Martin
Und wie kann ich bei
var x = 5;
window.setInterval('cyclicRequest()', interval);
der cyclicRequest- Funkion was übergeben? Wenn ich cyclicRequest(x) schreibe, dann wird x nicht erkannt, wenn ich cyclicRequest('x') schreibe, dann wird x als String übergeben.
Wie macht man das?
Vielen dank,
lg
Hi,
Und wie kann ich bei
window.setInterval('cyclicRequest()', interval);
der cyclicRequest- Funkion was übergeben?
mit einem Trick, der sich "Closure" nennt:
window.setInterval(function() { cyclicRequest(x); }, interval);
Damit wird ein namenloses Funktions-Objekt erzeugt, für das der Wert von x zum Zeitpunkt des setTimeout-Aufrufs quasi eingeschlossen wird, "enclosed", daher der Fachbegriff.
So long,
Martin
Hallo,
der cyclicRequest- Funkion was übergeben? Wenn ich cyclicRequest(x) schreibe, dann wird x nicht erkannt, wenn ich cyclicRequest('x') schreibe, dann wird x als String übergeben.
window.setInterval("cyclicRequest(" + x + ")", interval);
Jeena
der cyclicRequest- Funkion was übergeben? Wenn ich cyclicRequest(x) schreibe, dann wird x nicht erkannt, wenn ich cyclicRequest('x') schreibe, dann wird x als String übergeben.
window.setInterval("cyclicRequest(" + x + ")", interval);
Was aber nur bei Zahlen funktioniert, der Vorschlag von Martin ist daher sinnvoller als das.
Struppi.
Meine Frage wäre, wie ich das am Besten machen könnte?
Mit http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout@title=window.setTimeout();
Struppi.
Hallo,
in meiner Anwendung möchte ich z.B.: alle 10s eine Anfrage an den Server asynchron über AJAX senden.
Jetzt ist mir klar, dass es mit JavaScript nicht möglich ist, einen Thread zu erzeugen, der dies macht,
Meine Frage wäre, wie ich das am Besten machen könnte?lg
und wie kann ich das zyklisch realisieren? mit window.setTimeout() kann ich das aufrufen einer Methode ja nur verzögern.
lg
bitte keine Fullquotes, du schreibst doch nciht zum ersten Mal hier. Danke.
und wie kann ich das zyklisch realisieren? mit window.setTimeout() kann ich das aufrufen einer Methode ja nur verzögern.
Dann benutzt halt setInterval(), aber auch mit setTimeout() kannst dud ie Funktion immer wieder aufrufen. z.b. mit dieser Timer Erweiterung
Struppi.