Reload ohne Dialoganzeige
Patrick
- javascript
0 Utz0 Eternius0 peter0 Der Martin0 peter0 Der Martin0 Eternius
Hallo Gemeinde,
ich habe das folgende Problem:
Bei einem Klick auf einen Link wird ein DB-Eintrag gemacht und ein neues Fenster geöffnet. Das alte Fenster (von wo aus der klick ausgeführt wurde) soll nun reloadet werden, damit die aktualisierten DB-Daten angezeigt werden. Der Reload wird mit onclick="javascript:location.reload()" gemacht...
Nun meine Frage:
Beim reload erscheint immer das Dialog-Fenster des IE:
Diese Seite kann ohne ein erneutes Senden der Information nicht aktualisiert werden.
Hier muss man dann Wiederholen drücken, damit auf der Seite einen reload gemacht wird.
Kann dieser Dialog umgangen werden? Und wenn ja, wird das mit js, php oder mysql realisiert?
Gruss
Patrick
Hallo,
Beim reload erscheint immer das Dialog-Fenster des IE:
Diese Seite kann ohne ein erneutes Senden der Information nicht aktualisiert werden.
Das bedeutet: diese Seite wurde mit einer serverseitigen Skriptsprache erzeugt, und diese Seite verarbeitet auch Formulardaten. D.h. - die Formulardaten werden erneut benötigt.
Kann dieser Dialog umgangen werden? Und wenn ja, wird das mit js, php oder mysql realisiert?
*Nicht* mit JS (das ist clientseitig), *nicht* mit MySQL (das ist eine Datenbank) - sondern mit einer Änderung Deines Konzeptes: entkopple die Verarbeitung der Formulardaten von der Anzeige der Seite, indem Du - in der Art eines Interfaces - aus der momentan einen Seite zwei machst: die erste verarbeitet *nur* die Formulardaten, und wenn sie damit fertig ist, leitet sie zu einer zweiten weiter (die durchaus auch mit den schon verarbeiteten Formulardaten arbeiten kann, aber nicht mehr Formulardaten erwarten, sondern die z.B. per Querystring kriegt). Diese zweite kann dann ohne Abfrage neugeladen werden.
Verwende dazu natürlich die serverseitige Skriptsprace, die Du jetzt auch schon im Einsatz hast. Du erwähntest PHP, also verm. das.
Grüße,
Utz
Hallo
Stell deinen vorherigen Request auf GET um. Dann erscheint die Meldung nicht mehr. Beachte allerdings die limitierte Menge der Daten, die bei einem GET Request gesendet werden können.
Gruss
Hi,
»»onclick="javascript:location.reload()" gemacht...
im 'onclick' brauchts kein 'javascript:'
besser:
onclick="location.reload();"
ich würds mal ohne 'reload()' versuchen, einfach mal 'location.href' nochmal die eigene adresse zuweisen.
beim serverseitigen erzeugen der seite sollte eigentlich möglich sein zu verhindern, daß die seite zwischengespeichert wird.
gruß
peter
Hallo Peter,
ich würds mal ohne 'reload()' versuchen, einfach mal 'location.href' nochmal die eigene adresse zuweisen.
das hilft nicht. Ich bin mir nicht sicher, wie es bei anderen Browsern aussieht, aber zumindest die JS-Engine des IE ist so "intelligent", dass sie *kein Reload* auslöst, wenn ich dem location-Objekt nochmal dieselbe Adresse zuweise, die es schon hat.
Aber gut dass wir darüber gesprochen haben... ;)
Martin
Hi Martin,
is der IE auch noch *intelligent* genug, wenn man nen Übergabewert dranhängt?
z.B.: self.location.href=(self.location.href+'?irgendwas=1');
man muß das irgendwas ja nicht weiterverarbeiten.
gruß
peter
Hallo Peter,
entschuldige, dass ich hier den Begriff "Intelligenz" verwendet habe... ;)
Ich vermute aber mal (ohne dass ich das jetzt ausprobiert habe), dass es mit dem Query-String getan sein müsste.
Ach was, muss ja eigentlich! Denn wenn die angeforderte Ressource z.B. ein CGI-Script ist, könnte das zurückgelieferte Dokument abhängig vom Query-String völlig verschieden sein. Wäre schlimm, wenn der Browser dann immer noch die Requests aus seinem Cache oder sogar aus seinem eigenen Arbeitsspeicher bedienen würde.
So long,
Martin
Hallo,
stimmt, ich verwende die rand() funktion, und bastel mir das dann zusammen.
gruss