「ドキュメントの期限が切れました」というメッセージを防ぎ、期限切れのページを表示するだけですか?


13

フォームを送信してから押すと、最後のページではなく「Document expired」というメッセージが表示されることがあります。

ここに画像の説明を入力してください

代わりに、次の迷惑なメッセージボックスが表示されていました(「再試行」をクリックすると表示されます)。

ここに画像の説明を入力してください

今、私これが何を意味するのか、Firefoxがこのメッセージを表示する理由を知っています。ただし、代わりに最後に表示されたページだけを表示したい-ちょうど2秒前に表示されたように。ポップアップも、サーバーの新しい状態を反映するためのリロードもありません。(たぶん、小さな情報バーはいいでしょうが、それは私にとって必要ではありません)。

使用例:よく使用するサイトにログインし、Enterキーを押した後、ログインページのニュースヘッドラインが目の隅に表示されることを想像してください。もう一度クリックして、見出しをクリックする前に見た正確なページを見たいです。ログインしたフロントページを表示するか、単に再読み込みすると、異なる(ランダム化された)見出しが表示される場合があります。

それでは、「Document expired」および「Confirm」メッセージを完全に取り除き、POSTフォームを送信した後にFirefoxにキャッシュされた最後の場所を表示させるにはどうすればよいですか? about:config設定、拡張機能、プロキシトリックはすべて問題ありません。


3
キャッシュされていないドキュメントのキャッシュエントリを表示する方法を尋ねています。不可能です。
paa

3
それでは、拡張機能によって、Firefoxでドキュメントをキャッシュする方法を尋ねています:-)。
jdm

1
私がしようとしているのは、問題が発生するのどこか到達するために閲覧履歴をバックアップすることだけである場合、私はこれに何度も遭遇します。この障害を乗り越えるために何かを持つことは非常に便利です。メインツールバーの[履歴]ボタンを使用できることは知っていますが、多くの場合、どのエントリを選択するかを判断するのは困難です。
ジョー

@jdm質問1)以前に見たのと同じ方法で、離れた場所に移動したページを表示する方法。2)およびブラウザの確認ボックスを削除してデータを再送信する方法。私はそれを明確に理解しましたか?
ライカ

@sjrco:1)はい、しかし2)。戻る前に、クリックして、そこに何があるか(同じページ状態)を確認できるようにしたいと思います。(それ彼らはJSによって変更されているにもかかわらず、一部のページ上の作品、またはユーザーがフォームに記入し、そのブラウザは、下の変更された文書を保存する必要がありますいくつかの状況)。ブラウザにデータを静かに再送信させたくありません。ただし、データを再送信しない場合はモーダルダイアログを抑制します。
jdm

回答:


2

Firefoxエンジンはドキュメントの最後の状態をキャッシュせず(またはキャッシュすべきではありません)、サーバーがキャッシュを許可している場合はHTMLドキュメント自体のみをキャッシュします。Operaにはこの機能がありました(またはおそらくまだありました)が、ウェブサイト運営者にとって多くのセキュリティの頭痛の種となっています。

RFC 2616の状態:

13.4応答のキャッシュ可能性

キャッシュ制御(セクション14.9)ディレクティブによって特に制限されていない限り、キャッシングシステムは常に成功した応答(セクション13.8を参照)をキャッシュエントリとして保存し、新しい場合は検証せずに返し、検証が成功した後に返す場合があります。

最近の多くのサイトでは、キャッシュの問題を回避するために、サーバーが生成するすべての応答にcache-controlヘッダーを使用しています。Firefoxを使用してドキュメントを以前の状態で提供しても、大部分のサイトではとにかく機能しないか、機能しないはずです。最も安全で将来性のある解決策は、Webサイトの所有者にWebサイトを適切にコーディングするよう依頼することです。


1
ただし、少なくとも状況によっては、最後の状態をキャッシュします。これを試してみてください:gist.github.com/jdmansour/5578079を。少なくともDOMは保持されます。
jdm

1
履歴とキャッシュは同じものではありません。同じRFCのセクション13.13を参照してください。戻るボタンは、キャッシュエントリではなく、履歴エントリの再表示を要求します。Operaは正しいです。Firefoxは間違っています。これが「セキュリティ」機能であると主張する人は誰でも愚かです。常に「新しいタブで開く」を使用してから、新しいタブを閉じて、サーバーがそのことを認識せずに前のページを表示できます。適切に機能する戻るボタンには、まさにその効果があります。

2

これらのメッセージをすべて削除するには、すべてのスクリプトの先頭に次のPHP行を追加します。

header( "Expires:Sat、01 Jan 2000 00:00:00 GMT"); header( "Last-Modified:" .gmdate( "D、d MYH:i:s")。 "GMT"); header( "Cache-Control:post-check = 0、pre-check = 0"、false); session_cache_limiter( "must-revalidate");


2
@jdmが彼らが話しているページを制御できるかどうかはわかりません。
ヴァルミキーアルキサンダス14

2

答えはhttps://support.mozilla.org/fr/questions/1010942にあります。「ツール」->「オプション」->「自動キャッシュ管理を上書き」をチェックするだけです。


これだよ!この設定は、ツール/オプション/詳細設定/ネットワーク/自動キャッシュ管理の上書きの下にあります。「Document Expired」のすべてのケースで機能するかどうかはわかりませんが、POST応答のソースを表示できなかった場合は機能していました。
RomanSt

それだけであなたがキャッシュサイズを設定することができますので、これは、この問題には影響を与えないでください。support.mozilla.org/en-US/questions/1037647これは助けをしている場合、自動的に決定されたキャッシュサイズが何であったか、私の不思議を... 。
Nickolay
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.