2011-06-30 26 views
0

HTMLボタンのonClickで次のように記述します。javascriptのブラウザ履歴

javascript:history.go(-1) 

履歴ページには移動しません。その代わりに、次の...

ウェブページが有効期限が切れている示し

最も可能性の高い原因:このWebページのローカルコピーが古くなっている、とウェブサイトは、あなたがそれを再度ダウンロードすることが必要です。

お試しください: ツールバーの[更新]ボタンをクリックして、ページを再読み込みします。リフレッシュ後、再度特定のWebページに移動するか、情報を再入力する必要があります。

enter image description here

+0

デモ?.......... –

+0

@Felix Kling:画像の追加... –

+0

以前のウェブページのように、「キャッシュなし」ヘッダーが送信され、MSIEが宗教的にそれらをフォローするようにしました。しかし、どこに質問がありますか、あなたは実際に何を求めていますか? –

答えて

0

これではJavaScriptとは何の関係もありません、それは以前にPOSTデータが含まれてページに行くとしなければならないのいずれか(Boldewynの答えを参照)か、HTTPヘッダに関係していますキャッシュされていないもの、特にCache-Controlヘッダーを介してページに設定されて送信されます。 localhostでこれを実行している場合は、サーバーにアップロードするときとは異なる動作をする可能性があります。

See here表現が新鮮とみなされる最大時間を指定します -

最大エージング= [秒]:

便利なのCache-Controlレスポンス・ヘッダーが含まれます:私は、どのような場合に重要なビットをcopypastaます。 Expiresと同様に、このディレクティブは、絶対ではなくリクエストの時刻に関連しています。 [秒]は、表現が新鮮であることを希望するリクエストからの秒数です。

public - 認証された応答をキャッシュ可能としてマークします。通常、HTTP認証が必要な場合、応答は自動的にプライベートになります。

プライベート - 特定のユーザー(ブラウザなど)に固有のキャッシュに応答を保存させることができます。共有キャッシュ(例えば、プロキシ内)はそうではない可能性がある。

no-cache - 毎回、キャッシュされたコピーを解放する前に、キャッシュが強制的にオリジンサーバーに要求を送信して検証を実行させます。これは、認証が(公開との組み合わせで)尊重されること、またはキャッシュのすべての利益を犠牲にせずに厳格な新鮮さを維持するのに役立ちます。例えば

Cache-Control: max-age=3600, must-revalidate 
+0

私は、IEのエラーメッセージはここで誤解を招くと思います。おそらく、POST対GETの問題です。キャッシュが期限切れの単純なキャッシュだった場合、IEはそれを再度取得します。私の答えを見てください。 – Boldewyn

0

これはおそらく、前のページがHTTP POSTリクエストを受け取った場合、です。 JavaScriptレベルでは、これに対してほとんど何もできません。

問題は、POSTリクエストがに変更されました。のものです。したがって、ブラウザが同じリクエストを再度送信する場合、同じ変更情報を再度送信します。これは、二重投稿されたコメントと同じくらい簡単で、10000ドルを2回転送するという破壊的なものです。

、前のページをcontrollことができれば、あなたがこれを行う必要があります:あなたがメソッドを追加することができ、「Webページの有効期限が切れた」メッセージ=にPOSTから切り替えるには、あなたの要素に「取得」を避けるために

Browser: POST prev-site 
You -> deliver a redirect to prev-site (hence force a GET request) 
     instead of directly showing it 
Browser: GET prev-site 
User: Clicks link to this-site 
Browser: GET this-site 
User: history.go(-1) 
Browser: GET prev-site 
All: rejoice! 
0

を取得する。

これはURLで代わりのHTTPリクエストボディにフォームパラメータを置くことに注意してください。

関連するメモで、「Webページが期限切れです」というメッセージは、HTTP経由で同じ正確な処理が成功した場合にHTTPS上で発生するようです。

関連する問題