Peter Bucher - Mein Experiment, meine Spielereien, meine Welt...   ·   Stefan Falz   ·   Jürgen Gutsch   ·   Golo Roden   ·   ASP.NET Zone   ·   Microsoft ASP.NET
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

Ärger mit einem Bild, oder: Woher kommt der zweite Request?

Bei den Entwicklung eines Controls wurde nach ein paar Änderungen die <Control>.OnPreRender-Methode nach scheinbar einem Request (Seitenanforderung) zweimal aufgerufen.

Da muss also irgendwas faul sein, denk sich Peter und nimmt den Firebug / Fiddler zur Hand um den HTTP-Verkehr zu überprüfen.
Schlussendlich kam dabei raus, dass zuerst der vom Browser ausgelöste Request stattfindet und später noch ein anderer auf die gleiche Seite nachzieht.

Also zwei GET-Requests auf dieselbe Seite obwohl diese nur einmal angefordert wurde, wieso?

Mein Verdacht fiel auf Javascript / AJAX, wobei dort in den meisten Fällen POST zum Einsatz kommt.
Nach vielem Eingrenzen und Ausprobieren habe ich schliesslich herausgefunden woran das lag und möchte das euch natürlich nicht vorenthalten.

Das Control enthielt ein Image-Control und die ImageUrl-Eigenschaft wurde nicht gesetzt.
Aufgrund dieses Codes bzw. _weil_ das src-Attribut des img-Tags leer war:

<img src=”” alt=”Peter Bucher” />

…wurde in Firefox noch einmal die aktuelle Seite per GET angefordert, das sieht in Fiddler dann so aus:

firefox_request 

Also einen weiteren Request auf “/<Aktuelle_Seite>”.

Im Internet Explorer (7) passiert bei einem leeren img-Tag folgendes:

internetexplorer_request

Also einen Request auf den Root “/” und anschliessend wird dem Browser mitgeteilt doch bitte die entsprechende Standardseite zu laden, also bspw. “default.aspx” oder bei einer geschützten Seite - wie hier – die Login.aspx.

Gut zu wissen… und auch gut das es sowas wie Fiddler oder Firebug gibt.

Veröffentlicht Samstag, 31. Januar 2009 00:51 von Peter Bucher
Abgelegt unter: , , , , ,

Kommentare

Keine Kommentare
Anonyme Kommentare sind nicht zugelassen