14

誰もがその行動を知っていると確信しています。Web 上のフォームに入力し、送信します。送信後、間違ったデータを入力したことに気づきました。したがって、ブラウザの戻るボタンをクリックします。次に、入力したデータがフォームにまだある場合(この状況で期待していること)とない場合があります。

クリアされている場合とそうでない場合、接続が見つかりませんでした。

インターネット/スタックオーバーフローで見つけたいくつかの回答:

  • https 接続では、フォームは常にクリアされます
  • セッションで動的 Web サイトを使用する場合、フォームは常にクリアされます

しかし、どちらも決定的に間違っています。ブラウザーが戻った後もフォームデータを保持し、 https使用し、セッションを使用しているサイト (自分のサイトのような) を見たことがあります。

お願いします: ブラウザがこのような処理をどのように行っているか、誰か説明してもらえますか?

ところで、私の仕事は、フォーム データがクリアされていないことを確認することです。

4

2 に答える 2

9

すべてのシナリオに対して決定的な答えを提供することはできません。

Web 開発者として、ユーザーがデータを失わないようにするという目標を達成するために、私が開発するサイトで一般的に従うルールは次のとおりです。

  • 保持したいページで (HTTP ヘッダー経由の) すべてのキャッシュを無効にします。
  • フォームが送信されたときに、すべてのデータをセッション (またはその他の一時ストレージ) にキャプチャします。
  • ユーザーが逆方向に移動すると、ブラウザはページの新しいバージョンを要求します (キャッシュしないように設定されているため)。
  • ページには、セッション/データベース/どこでも参照するロジックがあり、最後の入力状態に基づいてすべてのフィールドを再入力します。ページに動的入力があった場合は、それらを再作成するのに十分なデータが必要です。
  • プロセスが終了したら、POST/Redirect/GET パターンを使用してセッション データをクリアし、ユーザーが元のページに戻りにくくします。

インターネット/stackoverflowで見つけたいくつかの回答:
1.https接続では、フォームは常にクリアされます
2.セッションで動的Webサイトを使用すると、フォームは常にクリアされます

#1 はブラウザ/セキュリティ設定/シナリオによって異なると思います。

仮定 2 は、すべての場合に当てはまるわけではありません (先ほど説明したパターンは、セッションと動的フォームを利用しています)。

于 2012-05-09T07:31:57.490 に答える
2

ブラウザの問題です。戻るボタンがクリックされたときのブラウザの動作は異なります。この質問は以前ここで尋ねられましたブラウザの戻るボタンをクリックするとフォームデータが失われます

于 2012-05-09T07:33:40.153 に答える