現在、エントリを表示するカレンダーを含む小さな Web アプリケーションに取り組んでいます。ページが読み込まれると、PHP によってカレンダーが生成されます。
同じページに、エントリを編集できるフォームがあります。変更するコマンドは AJAX によって送信され、その後何らかの方法でカレンダーを再読み込みする必要があります。
現在気になっているのは以下の点です。
AJAX を使用してカレンダーを更新する方法は 2 つあります。
- 1 つは、カレンダー全体またはカレンダー エントリの要素のリロードを意味するかどうかにかかわらず、カレンダーの HTML マークアップを新たに送信することです。
AJAX 呼び出しを介して送信されるかなりの量の (生の) データが必要になるため、これはおそらく最適ではありません。
一方、マークアップを再度生成する同じ PHP 関数を呼び出し、それを返し、クライアント側で DOM 要素を置き換えるだけでよいため、必要な作業は約 5 行のコードです。
これは、「簡単」に感じるので、現在私が使用している方法です。 - もう 1 つは、JSON エンコードされた新しいカレンダー エントリのデータを送信し、JavaScript 関数を使用して既存のマークアップに必要な変更を加えることです。
マークアップに関する多くの知識を 2 回 (PHP コードで 1 回、JS コードで 1 回) 使用する必要があるため、これも最適ではないように感じます。マークアップが何らかの形で変更されるとすぐに、この冗長なコードが問題を引き起こしていることがわかります。
また、かなりの量のフィールド (約 10 以上) を操作する必要があることを考えると、4 ~ 5 のコードを簡単に含む、より「複雑な」ソリューションのようにも感じます。
一方、コンテンツのみが送信されるため、送信されるデータははるかに少なくなります。
より良い解決策はどれですか? 3 番目 (または 4 番目) のオプションがありませんか?