この記事では、インターネット上で見つかるブラウザの戻るボタンを無効にするさまざまな解決策を紹介し、それぞれの利点、欠点、および適用可能な場面を分析します。
1. 概要
「ブラウザの戻るボタンを無効にするにはどうすればよいですか?」または「ユーザーが以前にアクセスしたページに戻るのを防ぐにはどうすればよいですか?」という質問が寄せられています。この質問は、ASP フォーラムで最もよく寄せられる質問の 1 つでもあります。残念ながら、答えは非常に簡単です。ブラウザの戻る
ボタンを無効にすることはできません。
最初は、ブラウザの「戻る」ボタンを無効にしたい人がいるとは信じられませんでした。その後、非常に多くの人が戻るボタン
を無効にしたいと考えていることを知り、安心しました (無効にしたいのは戻るボタンだけであり、ブラウザの進むボタンではありませんでした)。デフォルトでは、フォームを送信した後、ユーザーは (「編集」ボタンを使用する代わりに)
戻るボタンを使用してフォーム ページに戻り、フォームを編集して再度送信し、新しいレコードをデータベース。これは私たちが
見たくないものです。
そこで私は、この状況を回避する方法を見つけることにしました。私は多くの Web サイトにアクセスし、それらの Web サイトで紹介されているさまざまな実装方法を参考にしました。
ASP プログラミング Web サイトに頻繁にアクセスする場合は、この記事で紹介されているコンテンツの一部を見たことがあるかもしれません。この記事の目的は、考えられるすべての方法を皆さんに紹介し、
最適な方法を見つけることです。
2. キャッシュを無効にする
私が見つけた多くの解決策のうちの 1 つは、ページ キャッシュを無効にすることを提案しました。具体的には、次のようにサーバー側スクリプトを使用します:
< ;%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "キャッシュなし"
% >
この方法はとても効果的です!これにより、ブラウザはキャッシュからページを読み取るのではなく、サーバーに再アクセスしてページをダウンロードするようになります。この方法を使用する場合、プログラマーの主なタスクは、「戻る」ボタンによるアクセスに適していないページをユーザーが引き続き表示できるかどうかを決定するセッション レベルの変数を作成することです。ブラウザー
はこのページをキャッシュしなくなったため、ユーザーが戻るボタンをクリックするとブラウザーはページを再ダウンロードし、プログラムはそのセッション変数をチェックして、ユーザーが
を開くことを許可する必要があるかどうかを確認できます。ページ。
たとえば、次の形式があるとします。
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "キャッシュなし"
If Len(Session( "FirstTimeToPage")) > 0 then
&single; ユーザーは現在のページにアクセスしており、再度アクセスしようとしています。
&single; セッション変数をクリアし、ユーザーをログイン ページにリダイレクトします。
Session("FirstTimeToPage") = ""
Response.Redirect "/Bar.asp"
Response.End
End If
&single; プログラムがここで実行される場合、それはユーザーは現在のページを表示できます
&single; 以下はフォームの作成を開始します
Session("FirstTimeToPage") = "NO"
このようにして、SomePage.asp を開いたユーザーが戻るをクリックした場合、サーバーは、Session
("FirstTimeToPage") に値が含まれていることを確認するため、Session("FirstTimeToPage") をクリアし、ユーザーを他のページにリダイレクトします。もちろん、
これらすべてを行うには、ユーザーが Cookie を有効にする必要があります。有効にしないと、セッション変数が無効になります。 (この問題の詳細については、「セッション変数
が機能するには、Web 訪問者は Cookie を有効にする必要がありますか?」を参照してください。)
さらに、クライアント側のコードを使用して、ブラウザが Web ページをキャッシュしないようにすることもできます。
コードをコピー