Original geschrieben von Master0Blicker
Habe 'gedacht' da es um eine JS-Methode handelt müsste ich keine Anführungszeichen benutzen im Gegensatz zu erstellten Funktionen.
Habe 'gedacht' da es um eine JS-Methode handelt müsste ich keine Anführungszeichen benutzen im Gegensatz zu erstellten Funktionen.
window.setTimeout("funktion()", 1000); -> schaue in einer sekunde nach, was im stringwert des ersten parameters drin steht, und führe das aus (ja, das ist so'ne art "internes eval").
aber:
window.setTimeout(funktion(), 1000); -> das ruft zunächst mal die funktion() direkt auf. eine sekunde später wird dann geschaut, was im rückgabewert dieser funktion drin steht, und das dann evtl. ge-eval-t. (das könnte man benutzen, um erst in function() per rückgabewert zu entscheiden, was nachdem die eine sekunde rum ist ausgeführt werden soll.
wenn man es allerdings unabsichtlich so macht - dann bekommt man natürlich ein anderes ergebnis als erwartet ...)
Wie bekomme ich das hin das an der Stelle an der window.open() ausgeführt wird zuerst ein GIF geladen wird und anschliessend dieses durch eine andere Ausgabe 'ersetzt' wird ?
man könnte im window.open zuerst mal eine seite laden lassen, die das bild enthält - und die dann, wenn die antwort auf den request des formulars ankommt, durch diesen ersetzt wird.
in der praxis wird das aber vermutlich schlecht funktionieren, wenn seite (und bild) nicht bereits gecached sind - weil der GET-request ja ebenso wie das POSTen des formulars erst mal eine zeit lang dauert.
und vermutlich "überschreibt" der POST-request dann sogar den GET-request - der browser merkt, obwohl das ergebnis des GET-requests noch gar nicht da ist, wurde für das selbe fenster bereits ein neuer POST-request abgesetzt - also brauche ich auf das ergebnis des GET-requests gar nicht mehr warten.
Kommentar