XMLHTTPRequests brechen ab

diggity

Erfahrenes Mitglied
Hi Leute,

Ich hab seit heute ein sehr seltsames Problem... und zwar hab ich folgendes:

1. Ich hab eine Greybox Gallery im Einsatz
2. diese ist durch meine speziellen Anforderungen schon sehr modifiziert
3. das heißt ich hab ein paar GET Requests eingefügt die mir Bildkommentare holen etc.

Nun habe ich heute die Gallery so umgebaut, dass man auch IM Bild mit 2 Pfeilen navigieren kann (fährt man auf die rechte Seite kommt Pfeil nach rechts, färlt man auf die linke Seite kommt ein Pfeil nach links).
Das erfordert, dass ich in dem IFrame mit dem Bild jeweils einen Event (onclick) auf die Buttons legen muss, der mir parent.GB_CURRENT.switchPrev der Gallery auslöst (genau die Funktion wurde vorher auch aufgerufen zum weiter/zurück Schalten, nur wurder da der Event intern im Greyboxscript gesetzt).

Nun hab ich das Problem dass mir wenn ich weiter schalte die asynchronen jQuery Requests zwar ausgeführt werden, diese aber mitten drunter "abgewürgt" werden bzw nicht zu ende geladen werden. Der Code der update Funktion die dafür sorgt dass das neue Bild reingeladen wird sieht so aus:
Code:
    updateFrame: function() {
        var item = this.current_set[this.current_index];
        this._setCaption(item.caption);
        this.url = item.url;
        this.startLoading();
		//banner updaten

		updateGreyboxBanner('GB_banner_top');
		updateGreyboxBanner('GB_banner_right');
		
		//kommentare holen etc
		
	        getGalleryToolbar("div.gallery_toolbar", item.pic_id, (this.current_index +1), true, false);
		getPicComments("gallery", "div.gallery_pic_comments", item.pic_id);
		countPic("gallery", item.pic_id);		
		
				
    },

Wie kann es sein dass JS diese abwürgt?
Kann es sein dass es daran liegt dass ich die switchPrev Funktion der Greybox von innerhalb des IFrames aufrufe?
Die Funktionen der Requests sind 100% richtig, daran kanns nicht liegen, hat ja vorher mit der "eingebauten" weiter/zurück Funktion auch funktioniert.

Des weiteren hab ich festgestellt dass es im IE so gut wie keine Probleme damit gibt, da brechen diese Requests sehr selten ab, nur im FF seh ich bei der Developer Toolbar sehr schön dass sie nahezu immer abbrechen.

Wenn ich ausserdem zwischen getGalleryToolbar(), getPicComments() und countPic() einen Alert rein mache, werden sie nicht abgebrochen sondern ausgeführt bis sie fertig sind... total seltsam.

Hat irgendwer eine Ahnung woran das liegen könnte?

€dit: Anbei noch 2 Screenshots mit erfolgreichen und fehlerhaften Requests.
 

Anhänge

  • greyboxOk.jpg
    greyboxOk.jpg
    7,8 KB · Aufrufe: 20
  • greyboxFehler.jpg
    greyboxFehler.jpg
    10,7 KB · Aufrufe: 17
Zuletzt bearbeitet:
Ich bin jetzt drauf gekommen, dass das am Iframe liegen muss. Ich rufe ja aus dem Iframe heraus eine parent Funktion auf, die mir wiederum den Iframe neu lädt. Durch dieses neuladen wird dann vermutlich der Funktionsaufruf abgebrochen.

Wie kann ich dem entgegenwirken?!
 
Hi,

ohne jetzt genau zu wissen, was dort alles vor sich geht...prinzipiell habe ich es so verstanden?

Du hast ein iFrame, und darin eine Funktion, die einen Request absetzt.
Weiterhin rufst du aus dem iFrame eine Funktion im Elternfenster auf, welche das iFrame neulädt.

Erstmal...da dürftest du recht vermuten, wenn das iFrame neugeladen wird, landet dein Request im Nirvana.

Was aber genau versuchst du mit dem Request zu tun...willst du etwas im iFrame selbst manipulieren, oder etwas im Elternfenster? Wenn es das letztere ist, sollte es ausreichen, wenn du die Funktion, welche den Request absetzt, ebenfalls in das Elternfenster packst, und dort vom iFrame aus aufrufst.
Ist die Funktion im Elternfenster erstmal initialisiert, spielt es keine Rolle, was mit dem iFrame passiert.
 
Hallo, danke für deine Antwort!

Du hast ein iFrame, und darin eine Funktion, die einen Request absetzt.
Weiterhin rufst du aus dem iFrame eine Funktion im Elternfenster auf, welche das iFrame neulädt.

Nicht ganz: Ich habe einen Iframe, aus dem ich eine Funktion im Elternfenster aufrufe. Die Requests befinden sich auch im Elternfenster.

Was aber genau versuchst du mit dem Request zu tun...willst du etwas im iFrame selbst manipulieren, oder etwas im Elternfenster?

Ich hole mir mit den Requests Informationen für das Elternfenster (Bildkommentare etc).

Ist die Funktion im Elternfenster erstmal initialisiert, spielt es keine Rolle, was mit dem iFrame passiert.

Da bin ich mir nicht so sicher. Ich habe das ganze jetzt mal testweise so umgebaut, dass der Frame erst neu geladen wird, wenn alle Requests fertig sind (mittels Callbacks der einzelnen Funktionen). Jetzt geht das ganze natürlich etwas "schleppender", weil zuerst immer die ganzen Requests abgesetzt werden, und danach erst das Bild kommt... aber ich sehe da keinen anderen Weg.
Ich denke auch dass das ein Problem von Firefox ist, weil es im IE funktionierte. Das könnte also ein Bug sein ;)

Ganz glücklich bin ich mit dieser Lösung noch nicht...
 
Zurück