2

リンクがあります

<a href="new link">click me</a>

ユーザーが「クリックしてください」というリンクをクリックすると、新しいリンク ページがリダイレクトされ、サーバー側で何かが実行されます。問題は、ユーザーがブラウザの戻るボタンをクリックすると、古いリンクに戻ってしまうことです。ユーザーが「クリックしてください」というリンクをクリックすると、新しいリンク ページが開き、サーバー側での処理が再び行われます。この状況を防ぐには?ユーザーが古いページに戻っても、新しいリンクをクリックすることはできません

4

3 に答える 3

2

のようなリンクで一意の ID を生成し、データベースtherequest.do?id=1234にログ1234を記録して、要求が再度実行されないようにします。

  • ユーザーが に移動しmypage.do、サーバーが ID1234を生成し、未処理としてデータベースにログを記録します。
  • ユーザーがリンクをクリックしてtherequest.do?id=1234
  • サーバーは処理を行い、id1234を処理済みとしてマークします。
  • ユーザーが戻るボタンをクリックします。
  • ユーザーがリンクをもう一度クリックします。
  • サーバーは、リクエスト1234がすでに処理されていることを確認して確認するため、画面に次のエラー メッセージが生成されますrequest has already been processed
于 2012-12-21T21:53:31.867 に答える
0

新しいウィンドウを作成してみると、エンド ユーザーが戻ることができなくなりますが、CSS でボタンを非表示にするには、訪問済み状態を作成する必要があります。

<a href="new link" target="_blank">click me</a>

それ以外の場合、純粋な HTML では、ユーザーが標準リンクの [戻る] ボタンを押すのを止める方法はありません。

于 2012-12-21T21:54:04.197 に答える
0

これは Javascript で行うことができます。これを行う 1 つの方法を示すコード例を次に示します。

<html>
<body>
<a href="#" onclick="f();">click me</a>
<script>
    var first = true;
    function f() {
        if ( first ) {
            first = false;
            window.open('http://www.google.com');
        }
    }
</script>
</body>
</html>

または、グローバルな状態変数を削除して、クリックされたリンクを無効にするか非表示にすることもできます。

于 2012-12-21T21:56:49.580 に答える