Nachricht "Dokument abgelaufen" verhindern und nur die abgelaufene Seite anzeigen?


13

Wenn ich ein Formular abschicke und dann auf "Zurück" drücke, wird manchmal anstelle der letzten Seite die Meldung "Dokument abgelaufen" angezeigt.

Bildbeschreibung hier eingeben

Ich habe stattdessen das folgende nervige Meldungsfeld erhalten (das jetzt nach einem Klick auf "Erneut versuchen" angezeigt wird):

Bildbeschreibung hier eingeben

Nun, ich kann wissen , was das bedeutet und warum Firefox zeigt diese Meldung. Ich möchte jedoch stattdessen nur die zuletzt angezeigte Seite sehen - so wie sie vor einer Sekunde angezeigt wurde. Kein Popup und kein erneutes Laden, um den neuen Status des Servers widerzuspiegeln. (Vielleicht wäre eine kleine Info-Leiste nett, aber für mich nicht notwendig).

Anwendungsfall: Stellen Sie sich vor, ich habe mich bei einer Site angemeldet, die ich regelmäßig benutze, und nach dem Drücken der Eingabetaste wird in meinem Augenwinkel eine Nachrichtentitelzeile auf der Anmeldeseite angezeigt. Ich möchte zurückklicken und die genaue Seite sehen, die ich vor einer Sekunde gesehen habe, um auf die Überschrift zu klicken. Wenn ich die Startseite betrachte oder sie neu lade, werden möglicherweise andere (zufällige) Überschriften angezeigt.

Wie kann ich also die Meldungen "Dokument abgelaufen" und "Bestätigen" vollständig entfernen und Firefox so einrichten, dass der zwischengespeicherte letzte Speicherort nach dem Absenden eines POST-Formulars angezeigt wird? about:configEinstellungen, Erweiterungen, Proxy-Tricks sind in Ordnung.


3
Sie fragen, wie der Cache-Eintrag eines nicht zwischengespeicherten Dokuments angezeigt werden soll. Es ist nicht möglich.
Paa

3
Nun, dann frage ich mich, wie Firefox das Dokument auch zwischenspeichern kann :-).
JDM

1
Ich stoße häufig darauf, wenn ich nur versuche, eine Sicherungskopie des Browserverlaufs zu erstellen, um irgendwohin zu gelangen, bevor das Problem aufgetreten ist. Etwas zu haben, um diese Straßensperre zu überwinden, wäre sehr nützlich. Ich weiß, dass ich die Schaltfläche Verlauf in der Hauptsymbolleiste verwenden kann, aber es ist oft schwierig, herauszufinden, welchen Eintrag ich auswählen soll.
Joe

@jdm Sie fragen, 1) wie die Seite angezeigt werden soll, die ich auf dieselbe Weise wie zuvor gesehen habe; 2) und wie man das Bestätigungsfeld des Browsers entfernt, um die Daten erneut zu senden. Habe ich das klar verstanden?
Laika

@sjrco: 1) ja, aber nicht 2). Ich möchte in der Lage sein, zurück zu klicken und zu sehen, was dort war (gleicher Seitenstatus), bevor ich weg navigierte. (Das funktioniert auf einigen Seiten, obwohl sie von js geändert wurden oder der Benutzer Formulare ausgefüllt hat. Daher muss der Browser das geänderte Dokument unter bestimmten Umständen speichern .) Ich möchte nicht, dass der Browser Daten unbemerkt erneut sendet. Ich möchte modale Dialoge unterdrücken, wenn Daten nicht erneut gesendet werden.
jdm

Antworten:


2

Die Firefox-Engine speichert den letzten Status von Dokumenten nicht im Cache (oder sollte dies auch nicht tun), nur das HTML-Dokument selbst, wenn der Server das Cachen zulässt. Opera hatte (oder hat vielleicht immer noch) dieses Feature, aber es hat den Betreibern von Websites viele Sicherheitsprobleme bereitet.

RFC 2616 besagt:

13.4 Zwischenspeicherbarkeit von Antworten

Sofern nicht durch eine Cache-Control-Direktive (Abschnitt 14.9) speziell eingeschränkt, KANN ein Caching-System eine erfolgreiche Antwort (siehe Abschnitt 13.8) immer als Cache-Eintrag speichern, sie ohne Validierung zurückgeben, wenn sie frisch ist, und sie nach erfolgreicher Validierung zurückgeben .

Viele Websites verwenden heutzutage den Cache-Control-Header für alle vom Server generierten Antworten, um Caching-Probleme zu vermeiden. Selbst wenn Sie Firefox veranlassen, Ihnen das Dokument in dem früheren Zustand zu geben, funktioniert es auf den meisten Websites sowieso nicht oder nicht. Die sicherste und zukunftssicherste Lösung wäre, den Websitebesitzer zu bitten, seine Website ordnungsgemäß zu codieren.


1
Zumindest unter bestimmten Umständen wird der letzte Status zwischengespeichert. Versuchen Sie Folgendes : gist.github.com/jdmansour/5578079 . Zumindest das DOM bleibt erhalten.
JDM

1
Geschichte und Cache sind nicht dasselbe. Siehe Abschnitt 13.13 des gleichen RFC . Die Schaltfläche "Zurück" fordert eine erneute Anzeige eines Verlaufseintrags an, nicht eines Cache-Eintrags. Opera hat recht; Firefox ist falsch. Wer behauptet, dies sei eine "Sicherheitsfunktion", ist dumm. Sie können jederzeit "In neuem Tab öffnen" verwenden und dann den neuen Tab schließen, um die vorherige Seite anzuzeigen, ohne dass der Server davon Kenntnis hat. Ein ordnungsgemäß funktionierender Zurück-Button sollte genau diesen Effekt haben.

2

Die Antwort finden Sie unter https://support.mozilla.org/fr/questions/1010942 : Aktivieren Sie einfach Tools-> Options-> Override Automatic Cache Management.


Das ist es! Die Einstellung befindet sich unter Extras / Optionen / Erweitert / Netzwerk / Automatische Cache-Verwaltung überschreiben. Ich bin mir nicht sicher, ob es in allen Fällen von "Dokument abgelaufen" funktioniert, aber es hat in dem Fall funktioniert, in dem ich die Quelle einer POST-Antwort nicht anzeigen konnte.
RomanSt

Dies sollte sich nicht auf dieses Problem auswirken, da Sie nur die Cachegröße festlegen können: support.mozilla.org/en-US/questions/1037647 Ich frage mich, wie die automatisch ermittelte Cachegröße lautete, wenn dies hilfreich ist. .
Nickolay

1

Um all diese Nachrichten loszuwerden, fügen Sie die folgenden PHP-Zeilen am Anfang all Ihrer Skripte hinzu:

header ("Läuft ab: Sa, 01 Jan 2000 00:00:00 GMT"); header ("Zuletzt geändert:" .gmdate ("D, d MYH: i: s"). "GMT"); header ("Cache-Kontrolle: Nachprüfung = 0, Vorprüfung = 0", false); session_cache_limiter ("muss neu validiert werden");


2
Ich bin nicht sicher, ob @jdm die Kontrolle über die Seiten hat, über die sie sprechen.
Valmiky Arquissandas
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.