chullain: mehrere Request hintereinander klappen nicht!

Hallo Alle zusammen,

ich hab folgendes Problem. Ich hab ein Frameset, wo ich verschiedene Frames habe. Nun möchte ich aus einem Frame über Javascript ein Formular abschicken, welches in dem anderen Frame ausgeführt wird. Das ist nicht das Problem, das Problem ist, dass ich das Formular mehrmals hintereinander abschicken möchte, und das ziemlich schnell,d h. eine for-schleife, in der jeweils ein submit stattfindet. Anscheinend kriegt das HTML nicht so schnell hin. So dass ich das Problem habe, dass immer nur der erste Aufruf funktioniert und die anderen aufrufe gehen unter. Nur wenn ich in der For-Schlefe so einen kruzen stopp einbaue, z.B. alert ausgebe, dann berücksichtigt er auch andere Aufrufe.

Also hier mal im Code:
for(i=0; i < inputs.length; i++)  {
...
fk_comment(inputs[i].value, 'insert');
...
}

function fk_comment(ds, aktion) {
          document.collect.DS.value = ds;
          document.collect.Aktion.value = aktion;
          document.collect.target = 'collect';
          document.collect.submit();
}

Gibt es ein Befehl, wie ich die Verarbeitung etwas verzögern, wieviel Zeit sollte ich einschätzen, bzw. einplanen. dass es für einen Request langt?
Gibt es andere Ansätze vielleicht?

Gruss,
chullain

  1. Liebe(r) chullain,

    vielleicht möchtest Du ja die Antwort des Servers abwarten, bevor Du das Formular erneut abschickst? Mit einem window.onload im zurückgesandten Formular könntest Du die Serverantwort für den abschickenden Frame "bemerkbar" machen, damit deiser dann erneut das Formular auf Reisen schicken kann...

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. oh man, wenn ich nur etwas mehr von javascript verstehen würde...

      wie mache ich sowas bemerkbar?

      Gruss,
      chullain

  2. Mahlzeit.

    ...Das ist nicht das Problem, das Problem ist, dass ich das Formular mehrmals hintereinander abschicken möchte, und das ziemlich schnell,d h. eine for-schleife, in der jeweils ein submit stattfindet. Anscheinend kriegt das HTML nicht so schnell hin. So dass ich das Problem habe, dass immer nur der erste Aufruf funktioniert und die anderen aufrufe gehen unter.

    Oh weh, das hört sich seeehr krude an!

    Was funktionieren sollte:
    Erzeuge dir per JS für jeden Submit einen neuen Iframe(unsichtbar) und setze den Form Target auf eben diesen...

    Grüße

    1. Hm...habe jetzt folgendes ausprobiert:

      var iframe = document.createElement("iframe");
      document.body.appendChild(iframe);
      iframe.src = "test.html";
      iframe.style.visibility=false;

      ...kriege ihn aber irgendwie nicht unsichtbar...vorallem was ich nicht verstehe, wie warte ich da die Antwort ab...oder brauche ich dann nicht, weil das eine neue Instanz ist? Und wie kann ich dann dieses Element wieder löschen?

      Gruss,
      chullain

      1. Hm...habe jetzt folgendes ausprobiert:

        var iframe = document.createElement("iframe");
        document.body.appendChild(iframe);
        iframe.src = "test.html";
        iframe.style.visibility=false;

        ...kriege ihn aber irgendwie nicht unsichtbar...vorallem was ich nicht verstehe, wie warte ich da die Antwort ab...oder brauche ich dann nicht, weil das eine neue Instanz ist? Und wie kann ich dann dieses Element wieder löschen?

        Wieso zeigst du es überhaupt erst an?
        Die zweite Frage ist schon kniffliger. Unmittelbar kannst das nicht feststellen (nur der onload Event in dem Dokument im iframe kann das), d.h. du musst mit einer Timeout Schleife so lange checken bis z.b. document.body verfügbar ist.

        Struppi.

        1. Wieso zeigst du es überhaupt erst an?
          Die zweite Frage ist schon kniffliger. Unmittelbar kannst das nicht feststellen (nur der onload Event in dem Dokument im iframe kann das), d.h. du musst mit einer Timeout Schleife so lange checken bis z.b. document.body verfügbar ist.

          Struppi.

          ich habe es so versucht, aber er zeit den alert garnicht an bei der onload-funktion

          iframe.onload = function (e) { alert("loaded"); };

          1. ich habe es so versucht, aber er zeit den alert garnicht an bei der onload-funktion

            iframe.onload = function (e) { alert("loaded"); };

            so geht es auch nicht, wie gesagt nur die Seite selbst kann den onload Event setzten, nicht die Seite die den iframe erzeugt.

            Struppi.

  3. habs jetzt so gemacht...und funktioniert wunderbar...

    var iframe = document.createElement("iframe");
    document.body.appendChild(iframe);
    var url_value = "check_temp.asp?DS=" + ds + "&Aktion=" + aktion;
    iframe.src = url_value;
    iframe.style.display= 'none';
    document.body.removeChild(iframe);

    ...dankeschön für Euere Hilfe

    Gruss,
    chullain

    1. habs jetzt so gemacht...und funktioniert wunderbar...

      var iframe = document.createElement("iframe");
      document.body.appendChild(iframe);

      Warum machst du das?
      Muss das iframe wirklich in den Dokumentenbaum eingehängt werden?

      Struppi.