GET-Aufruf mag asynchron, synchron nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • GET-Aufruf mag asynchron, synchron nicht

    Hallo,

    ist das Problem bekannt, dass eine asynchron durchgeführte AJAX-GET-Anfrage

    http_request1.open('GET', url, true);
    funktioniert, die gleiche synchron ->

    http_request1.open('GET', url, false);
    aufgerufen jedoch nicht? Leider ist das ganze auch schlecht zu debuggen, da meine alert-Fensterchen jetzt auch noch Exceptions erzeugen (bei Interesse s. unten).

    Jedenfalls krieg ich beim asynchronen Aufruf das gewünschte Ergebnis vom Server und beim synchronen nicht, benötige jedoch an sich einen synchronen Aufruf, da es nun mal auf die Reihenfolge in der Abarbeitung ankommt...

    Hat jemand eine Idee, woran das liegen könnte?

    (Hab schon irgendwo einen ähnlichen Beitrag entdeckt,
    wo das gleiche Problem beschrieben wurde, jedoch keine Lösung dazu. )

    Gruß Gockel




    Exception der alert-Fenster:

    Fehler: [Exception... "'Die Erlaubnis für das Setzen der Eigenschaft XULElement.selectedIndex wurde verweigert' when calling method: [nsIAutoCompletePopup::selectedIndex]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"

    ...

  • #2
    Re: GET-Aufruf mag asynchron, synchron nicht

    Und wie versuchst du auf das Ergebnis des synchronen Requests zu reagieren?


    Dass man dabei nicht onReadyStateChange nutzt, sondern nach dem Absetzen des Requests gleich mit dessen Verarbeitung weitermacht (synchron eben), ist bekannt ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Aha... Vermutlich liegts daran. Gleich mal probieren...

      Kommentar


      • #4
        Bingo, läuft synchron, danke!

        Nun stört bloß noch bisschen, dass in der Zeit, während die Daten hin- und hertransferiert werden, die Darstellung neu eingegebenen Textes in der Eingabezeile (<input...>) blockiert ist, obwohl der Tastaturpuffer die Zeichen durchaus aufnimmt und darstellt, sobald der Transfer abgeschlossen ist... Die Routine, die prüft, ob neue Daten angezeigt werden müssen und ggf. die nötigen Reaktionsmaßnahmen einleitet, wird über setInterval(...) aufgerufen.

        Hm, mal tüfteln....

        Kommentar


        • #5
          Original geschrieben von Gruselgockel
          Nun stört bloß noch bisschen, dass in der Zeit, während die Daten hin- und hertransferiert werden, die Darstellung neu eingegebenen Textes in der Eingabezeile (<input...>) blockiert ist
          Tja, du wolltest synchron, du hast synchron ... also machst du dir jetzt vielleicht mal klar, was synchron bedeutet - nämlich, dass alle weiteren Script-Aktivitäten so lange blockiert sind.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ja, das war mir schon klar, dass bei synchroner Abarbeitung gewartet wird, nur nicht, dass das gleich so lange blockiert, dass man einige Sekunden nichts eingeben kann... Also werd ich die Synchronisierung wohl doch in JavaScript regeln müssen, hilft ja nichts.

            Kommentar


            • #7


              Genau dafür gibts doch asyncrone Requests....

              Kommentar


              • #8
                Vermutlich läufts auf asynchrone Aufrufe wegen Erhaltung des Flusses bei synchroner Verarbeitung wegen Reihenfolge hinaus... also werd ich es wohl irgendwie in JavaScript managen müssen.


                ( Weiterhin frohes Augenrollen wünsch ich, aber nix ausrenken dabei. )

                Kommentar

                Lädt...
                X