Angela: Reload nach Backbutton???

Hallo

Kann es sein das hier die Browser generell nicht neu laden oder was mach ich da bitte falsch?

Hab es so probiert

<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />

und auch per PHP

header("Expires: Mon, 12 Jul 1995 05:00:00 GMT");
    header("Last-Modified: ". gmdate("D, d M Y H.i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");

Als Test habe ich eine einfache Timeausgabe welche die Aktuelle Zeit anzeigen soll. Aber ich kann hier nach vor und retour klicken, die Zeit ist immer die selbe.

Für alle Tips dazu dankbar

  1. Nö, die laden die Seite nicht neu wenn man mit den Browserknöpfen zurücknavigiert, deswegen sind auch Formularfelder gefüllt wenn man zurückgeht.
    Obwohl, ich erinnere mich da an Ausnahmen, habe aber keine Ahnung wie das dann gemacht wurde.

    --
    Chris

  2. Kann es sein das hier die Browser generell nicht neu laden oder was mach ich da bitte falsch?

    warum sollte ein browser eine seite neu laden, wenn man den zurück-button betätigt? ich ERWARTE sogar von meinem browser dass er mir exakt das zeigt was ich vorher gesehen (mit exakt den selben werbebannern und den selben zufallszahlen, die ich vorher vom server bekommen hab)

    <meta http-equiv="cache-control" content="no-cache" />
    <meta http-equiv="expires" content="0" />
        header("Expires: Mon, 12 Jul 1995 05:00:00 GMT");
        header("Last-Modified: ". gmdate("D, d M Y H.i:s") . " GMT");
        header("Cache-Control: no-store, no-cache, must-revalidate");
        header("Cache-Control: post-check=0, pre-check=0", false);
        header("Pragma: no-cache");

    und du meinst im ernst, nur weil du alles mögliche reinkopierst, was du irgendwie findest machts das besser?

    cache-control zb hat auf deinen browser nur dann einen effekt, wenn er sich dazu enschließt, die empfehlung des http-headers anzunehmen
    http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

    über http-header lassen sich per defintion keine informationen vorgeben, es sind alles nur empfehlungen

    Als Test habe ich eine einfache Timeausgabe welche die Aktuelle Zeit anzeigen soll. Aber ich kann hier nach vor und retour klicken, die Zeit ist immer die selbe.

    genau das erwarte ICH wie gesagt von meinem browser

    1. <meta http-equiv="cache-control" content="no-cache" />
      <meta http-equiv="expires" content="0" />
          header("Expires: Mon, 12 Jul 1995 05:00:00 GMT");
          header("Last-Modified: ". gmdate("D, d M Y H.i:s") . " GMT");
          header("Cache-Control: no-store, no-cache, must-revalidate");
          header("Cache-Control: post-check=0, pre-check=0", false);
          header("Pragma: no-cache");
      und du meinst im ernst, nur weil du alles mögliche reinkopierst, was du irgendwie findest machts das besser?

      Das ist ein Ansatz .. tut mir wirklich leid das ich damit deine Gefühle verletzt hab. ;)

      cache-control zb hat auf deinen browser nur dann einen effekt, wenn er sich dazu enschließt, die empfehlung des http-headers anzunehmen
      http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

      Und du glaubst ich kenn das nicht? *lol*

      über http-header lassen sich per defintion keine informationen vorgeben, es sind alles nur empfehlungen

      Als Test habe ich eine einfache Timeausgabe welche die Aktuelle Zeit anzeigen soll. Aber ich kann hier nach vor und retour klicken, die Zeit ist immer die selbe.
      genau das erwarte ICH wie gesagt von meinem browser

      Was du erwartest ist mir  eigentlich schnuppe. Mich interessiert eigentlich nur die Problemlösung.

      Das Thema Backbutton verbieten kennen wir ja eh alle und wissen das es schwachsinn ist. Aber sofern ich ein Back und ein Forward nicht abfangbar ist weil die Seite nicht neu läd ist das ein gröberes Problem in einer Intranetanwendung.

      lg Angela

      1. Was du erwartest ist mir  eigentlich schnuppe.

        Nana.

        Aber sofern ich ein Back und ein Forward nicht abfangbar ist weil die Seite nicht neu läd ist das ein gröberes Problem in einer Intranetanwendung.

        Du solltest stets angeben, wenn Du Dich in einem Intranet bewegst, hier gelten andere Spielregeln als im Internet. Ansonsten versuchs mal mit einem meta-refresh.

        Siechfred

        --
        Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.
      2. Das ist ein Ansatz .. tut mir wirklich leid das ich damit deine Gefühle verletzt hab. ;)

        hast du nicht, der ansatz sieht aber aus, als hättest du nicht viel ahnung von dem was du tust, ansonsten würdest du auch hier nicht fragen

        Und du glaubst ich kenn das nicht? *lol*

        ja, das glaube ich in der tat - ansonsten hättest du nicht einen entsprechend wirren codeschnipsel versucht und willkürzlich http-equiv und http-header "gemischt"

        Was du erwartest ist mir  eigentlich schnuppe.

        ich erwarte mir benutzerfreundliches verhalten, wie viel andere leute (darunter sind zb leute, die standards oder empfehlungen veröffentlichen) die das ähnlich sehen

        Mich interessiert eigentlich nur die Problemlösung.

        es gibt keine lösung für dein problem - wenn du den von mir verlinkten rfc-artikel zum http/1.1-protokoll auch nur ansatzweise studiert hättest, wüsstest du das - nein, du müsstest ihn garnicht gelesen haben - ich sagte breits, dass sämtliche http-header nur eine empfehlung bereitstellen und nicht bindend sind

        Das Thema Backbutton verbieten kennen wir ja eh alle und wissen das es schwachsinn ist.

        davon war nie die rede

        Aber sofern ich ein Back und ein Forward nicht abfangbar ist weil die Seite nicht neu läd ist das ein gröberes Problem in einer Intranetanwendung.

        nein - dann hast du beim programmieren der anwendung einen fehler gemacht - eine webanwendung (egal welche) basiert grundlegend auf dem sequentiellen absetzen von http-requests die irgendwie ausgewertet und beantwortet werden, einen zurück-schritt gibt es nicht - sollte der benutzer aufgrund von browsertechischen gegebenheiten doch einen unternehmen (zb der back-button oder ein reload der seite) hast DU als entwickler dafür zu sorgen, dass der nun doppelt (oder mehrfach) abgeschickte http-request nicht nochmal ausgewertet wird

        ob die webanwendung jetzt ein gästebuch ist, bei dem man doppeleinträge vermeiden will oder etwas komplexeres, ist in dem fall unerheblich

        da das http-protokoll zustandslos ist, kann kann das http-protokoll nichts daran ändern, du muss in der auswertung der http-anfragen entsprechend darauf reagieren

        ps: im übrigen hätte ich deinen post jetzt einfach ignorieren sollen, weil ich mich ziemlich verarscht fühle - insbesondere "Und du glaubst ich kenn das nicht? *lol*"  besonders die komponente "*lol*" ist schon die härte

        1. nein - dann hast du beim programmieren der anwendung einen fehler gemacht - eine webanwendung (egal welche) basiert grundlegend auf dem sequentiellen absetzen von http-requests die irgendwie ausgewertet und beantwortet werden, einen zurück-schritt gibt es nicht - sollte der benutzer aufgrund von browsertechischen gegebenheiten doch einen unternehmen (zb der back-button oder ein reload der seite) hast DU als entwickler dafür zu sorgen, dass der nun doppelt (oder mehrfach) abgeschickte http-request nicht nochmal ausgewertet wird

          Richtig das mache ich auch. Der erneute Request würde auch neu behandelt werden und in einem angepaßten Response erfolgen, dazu wäre es aber auch nötig einen erneute Request bzw Reload, der gecacheten Seite, bei einem Back des User auf der vorangegangen Seite auszulösen, und nicht nur einfach die Seite aus dem Cache des Browsers zu laden. Sofern der Browser nicht cachen würde hätte man schon gewonnen.

          lg Angela

    2. Hallo,

      Kann es sein das hier die Browser generell nicht neu laden oder was mach ich da bitte falsch?
      warum sollte ein browser eine seite neu laden, wenn man den zurück-button betätigt? ich ERWARTE sogar von meinem browser dass er mir exakt das zeigt was ich vorher gesehen (mit exakt den selben werbebannern und den selben zufallszahlen, die ich vorher vom server bekommen hab)

      ja, so unterschiedlich sind die Erwartungen. Ich ERWARTE, wenn ich "zurück" navigiere, dass die zuletzt vorher geladene Seite erneut angefordert wird (ggf. mit einem Conditional Request, der mit 304 Not Modified beantwortet werden kann), und dass Formularfelder wieder jungfräulich sind.

      Deswegen habe ich meine Browser auch entsprechend eingestellt - was uns zum Kern der Sache bringt.

      @Angela: Ob ein Browser eine Seite beim vor/zurücknavigieren oder auch beim einfachen Reload aus dem Cache holt (wenn vorhanden) oder neu vom Server anfordert, bleibt ihm selbst überlassen - bzw. dem Benutzer, der das Verhalten nach seinem Geschmack einstellt. Die Caching-Angaben im HTTP-Header oder auch in den meta-Elementen sind lediglich Empfehlungen. Ein Browser ist nicht verpflichtet, sie zu beachten.

      über http-header lassen sich per defintion keine informationen vorgeben, es sind alles nur empfehlungen

      Genau.

      So long,
       Martin

      --
      F: Was ist eigentlich aus deinem schlimmen Durchfall geworden?
      A: Mein Arzt hat mir Valium verschrieben.
      F: Und das hilft?
      A: Naja, ich mach mir immer noch in die Hose. Aber inzwischen ist es mir egal.