ホームページ >バックエンド開発 >PHPチュートリアル >Post/Redirect/Get (PRG) はどのようにしてページ更新時の不要なフォームの再送信を防ぐことができますか?
Post/Redirect/Get を使用したページ更新時のフォームの再送信の防止
この状況では、ページを更新すると意図しないフォームの再送信が発生します。 Post/Redirect/Get (PRG) パターンは効果的なソリューションを提供します。その実装を詳しく見てみましょう。
フォームが送信された後、サーバーは次のステップを実行します。
フォーム送信後にユーザーをリダイレクトすることで、ブラウザの暗黙的なページ更新時の GET リクエストにはフォーム データが含まれていないため、再送信が妨げられます。
ただし、これを回避することが重要です。 [戻る] ボタンを使用すると、以前に送信されたデータがフォームに再入力される可能性があるためです。シームレスなユーザー エクスペリエンスを実現するには、データが正常に送信されたことを新しいページで明確に示すようにしてください。
window.history.replaceState を使用した Javascript アプローチ
As回答で述べたように、代替アプローチには、JavaScript の window.history.replaceState メソッドを利用することが含まれます:
if (window.history.replaceState) { window.history.replaceState(null, null, window.location.href); }
Thisこのスクリプトはブラウザの履歴を変更し、ページの更新をトリガーせずに現在のエントリを新しいエントリに置き換えます。ただし、このアプローチは PRG パターンほど信頼性が低い可能性があることに注意することが重要です。
結局のところ、PRG パターンは、フォームの元の URL を維持し、フォームの再送信を防止しながら、ページ更新時のフォームの再送信を防ぐ堅牢なソリューションであり続けます。ユーザーフレンドリーなエクスペリエンス。
以上がPost/Redirect/Get (PRG) はどのようにしてページ更新時の不要なフォームの再送信を防ぐことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。