Generic1: Ajax Nachricht an den Server senden

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

  1. Hi,

    Meine Frage wäre, wie ich das am Besten machen könnte?

    Wenn mit JavaScript, dann wohl mit setTimeout oder setInterval.

    Gruß
    Ole

    --
    Das Wort Vegetarier kommt aus dem Indianischen und bedeutet: Zu dumm zum Jagen.
    1. 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

      --
      Lieber eine Stumme im Bett, als eine Taube auf dem Dach.
    2. 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

      1. 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

        --
        Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde.
      2. 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

        1. 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.
          
  2. 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.

  3. 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.

    1. 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.