1

ユーザーが Javascript を使用して戻るボタンを押したかどうかを確認する方法があることは知っていますが、Javascript に頼らずに確認する方法はありますか? おそらくリファラーURLを見るだけの解決策はありますか?

4

2 に答える 2

4

JavaScriptなしではNo.

問題は、戻るボタンを押してもサーバーへのアクセスが保証されないことです。ページのクライアント側をキャッシュすることができ、サーバーにヒットした (ページをロードした) 場合でも、最初のヒットからのリクエストは、ちょうど表示されていたページからのものではありません。戻るボタンは、リクエストに「紹介」情報を追加しません。あなたが今どこにいたかの詳細を送信せずに、あなたが最後に行ったことに戻るだけです.

このクライアント側を処理する必要があります。

于 2011-03-19T05:31:33.120 に答える
1

はい、可能です。これには 2 つの部分があります。

  1. すべての URL には一意のトークンが含まれている必要があります。サーバー側では、現在および過去のトークンを追跡します。リクエストが来て、トークンが過去のトークンと一致する場合、戻るボタンが押されました。現在のトークンと等しい場合は、リクエストを通常どおり処理します。それ以外の場合、リクエストは失敗します。
  2. 現在、ページがキャッシュされている可能性があり、サーバーがリクエストを認識していない可能性があります。そのため、ブラウザのキャッシュを無効にするための措置を講じる必要があります。次の http ヘッダーを設定すると、ブラウザーは強制的に要求を行う必要があります -

    Cache-Control : no-Cache
    Pragma : No-Cache
    Expires : Thu, 01 Jan 1970 00:00:00 GMT

可能だからといって、それを使用する必要があるわけではありません。戻るボタンは Web にとって不可欠な手法であり、それを壊すと使いにくくなります。

于 2011-03-19T06:50:22.963 に答える