Http request bleibt synchron

FrankWST

Erfahrenes Mitglied
Hallo,

ich versuche krampfhaft einen asynchronen Http-Request mit
Code:
http_request.open('GET', httpRequestURL, true);
abzusetzen. Dieser sollte ja gem. Parameter 3 asynchron sein.
Leider ist er bei mir synchron, d.h. der Browser reagiert (z.B. auf Anklicken eines Link) erst, wenn der Request zurück gekehrt ist. In der Zwischenzeit dreht sich die "Lade-Eieruhr" und der Lade-Balken ist zu sehen.

Hat jemand von Euch sowas auch schon mal gehabt? Das Problem tritt im IE genauso wie im Firefox auf.

Danke,
Frank
 
Moin Frank,

möglicherweise verstehst du das mit dem synchron falsch....was sollte denn deiner Meinung nach sonst in der Zwischenzeit passieren?
 
Moin Frank,

möglicherweise verstehst du das mit dem synchron falsch....was sollte denn deiner Meinung nach sonst in der Zwischenzeit passieren?

Hi Sven,

möglicherweise liegt da tatsächlich ein Verständnisproblem vor.

Meine Welt sieht so aus:
Synchron:
Ein synchroner Request wird abgesetzt und der Browser kann erst wieder agieren wenn die Antwort eingetroffen ist. D.h. wie bei mir beobachtet.

Asynchron:
Der Request wird abgesetzt mit einer Callback-Funktion, die der Server aufrufen soll wenn ein Ereignis (bestimmte DB-Änderung) eintritt.
In der Zwischenzeit ist der Browser voll funktionsfähig. D.h. insbesondere kann der Benutzer einen Link anklicken und wird sofort zu dem Link-Ziel geführt.
Der Aufruf der Callback-Funktion bewirkt nur eine Aktualisierung eines bestimmten Seiten-Teils (eine Auflistung).
Das ist das Verhalten das ich gerne hätte.

Implementierungs-Detail: Der Server-Anteil (für den Request) prüft in einer Endlos-Schleife einen bestimmten Datensatz auf Änderung. Dass er Zwischezeitlich überhaupt "zurück kommt" liegt daran, dass er nach 10 mal prüfen "bisher keine Änderung" meldet.

Kannst Du mich diesbezüglich "aufklären"!?

Danke,
Frank
 
Man kann keine Links mehr bei dir anklicken?
Guck doch in den Prozessen mal nach ob dien CPU ausgelastet ist weil du ausversehen ne schleife in JS eingebaut hast, oder in der Fehlerkonsole(Firefox) ob JS-Fehler aufgetreten sind.
So weit ich weiß war das was du über syncron und asyncron gesagt hast richtig:
Die Request wird abgesetzt, aber der darauffolgende code wartet nich sondern wird neben bei weitergemacht.
Zum mindest bei deinem Beispiel, da du ja true gesagt hast.
 
Jo, das hört sich so an, wie es sein sollte. Ist das irgendwo online?

Du könntest mal direkt nach dem send() einen alert einbauen, dieser dürfte dann auch nicht kommen, wenn der Request synchron ist.

Hast du evtl. woanders etwas(Schleife), was auf den Reqquest wartet(abgesehen von der Callback-Funktion)
 
Ich habe mal eine stark vereinfachte Variante zusammen gebaut. Damit geht es!
Werde also weiter analysieren. Melde dann kurz das Ergebnis.

Gruß,
Frank
 
Ich habe mal eine stark vereinfachte Variante zusammen gebaut. Damit geht es!
Werde also weiter analysieren. Melde dann kurz das Ergebnis.

OK, ich weiß jetzt was es war: Das
Code:
session_start();
auf der Server-Seite!
Ich wollte damit einfach über die Session-Variablen arbeiten, d.h. UserId und sonstige Informationen direkt vom Server holen.

Scheinbar geht das aber nicht!?
 

OK, ich komme ja auch nach session_start() an die Session-Variablen. Aber genau dann (wenn ich session_start() aufrufe) kommt es zu diesem "Hänger-Effekt" im Client.

- Übrigens: Diesen Effekt an sich kann ich mir auch nicht erklären!? Aber das nur nebenbei.

D.h. mir ist jetzt nicht klar, wie ich an die Session-Variablen komme ohne session_start() zu verwenden.
 
Zurück