ホームページ >ウェブフロントエンド >jsチュートリアル >Web アプリケーションで未保存のフォーム データの損失を確実に防ぐにはどうすればよいでしょうか?
未保存のフォーム終了の防止
多くの Web アプリケーションは、ユーザーがデータを入力および編集できるフォームを備えています。ユーザーがこれらのフォームから移動するかブラウザのタブを閉じるときに、意図しないデータ損失を防ぐことは、重要なセキュリティ対策です。この記事では、さまざまなアプローチの詳細な分析を使用して、この問題に対する包括的な解決策を検討します。
有効期間が短く、欠陥のある解決策
beforeunload イベントの処理を試行し、この問題を解決するために、null 以外の文字列が表示されます。ただし、このアプローチは、ユーザーがフォームを送信すると失敗し、アンロード イベントもトリガーされます。これを軽減するために、フォームが送信されていることを示すフラグを導入できます。ただし、この解決策には、フォームに加えられた実際の変更が考慮されていないため、依然として問題があります。
理想的な解決策: 「ダーティ」フラグを活用する
より包括的な解決策このアプローチでは、重大なフォーム変更が発生した場合にのみアラートをトリガーする「ダーティ」フラグを使用します。このメソッドは、beforeunload イベントと、関連するフォーム値が変更されたかどうかを検出する isDirty 関数を組み合わせます。
「ダーティ」ステータスの決定
isDirty 関数の実装には、以下が含まれます。いくつかの考慮事項:
イベント処理の回避落とし穴
簡素化のためのサードパーティ ライブラリ
車輪を再発明する代わりに、確立されたものを使用することを検討してください。ライブラリ:
ブラウザの制限:
Firefox 4 では、アンロード確認ダイアログでのカスタム メッセージのサポートが廃止されました。 Chrome 51 ではこの機能も削除されます。代わりに、より一般的なメッセージの使用を検討してください。
以上がWeb アプリケーションで未保存のフォーム データの損失を確実に防ぐにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。