以下の画像で説明されているように、Front Controller パターンの実装である Web アプリケーションがあります。具体的には、この質問の回答で説明されているように、フロント コントローラー パターンのコード例に従いました。
.jsp ページの 1 つで更新の問題が発生しています。特に、このページにはポップアップ エディターがあり、ユーザーは外部データベースのデータ セットへのリンクを追加または削除できます。ユーザーが保存ボタンを押すと、リクエストが送信され、フロント コントローラーによってインターセプトされます。次に、参照リンク (多対多の ID 番号) を保存または削除するための正しいアクションが、システム独自のデータベースで実行されます。その後、ページをリロードする必要があります。これにより、ポップアップなしで本質的に同じページにリダイレクトする前に、両方のデータベースからデータをロードする連鎖コマンドがトリガーされます。
ただし、理解できない何らかの形式のキャッシュが原因で、ページはリロードされません。キャッシュされたデータのロードを防ぐために、URLに一意の値を追加することから、jspページにメタタグを追加することまで、見つけられるすべてのソリューションを試しました。サーバー側でデータが読み込まれていることを確認しました。F5 を 1 回クリックするだけで、ページが自動的に更新されるように更新されます。
また、window.location.reload() を呼び出す onClose 関数をポップアップに実装しました。ただし、この呼び出しはフロント コントローラーに割り込み、最新の要求を処理するために現在実行中のすべてを停止します。これにより競合状態が発生し、フロント コントローラーがページのリロードを開始する前に、データを挿入/削除できる場合とできない場合があります。
列を作るべきですか?このようにしない正当な理由はありますか?フロントコントローラーの実行メソッド、またはクラス自体が何らかの同期を実装する必要がありますか?