Patrick: Reload ohne Dialoganzeige

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

  1. 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

    --
    Mitglied im Ring Deutscher Mäkler
  2. 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

    --
    no strict;
    no warnings;
    Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
  3. 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

    1. 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

      1. 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

        1. 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

          1. Hallo,

            stimmt, ich verwende die rand() funktion, und bastel mir das dann zusammen.

            gruss

            --
            no strict;
            no warnings;
            Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.