特定のフォームは複雑すぎて 1 ページに収まりません。たとえば、マップ上の場所の選択、カレンダー ウィジェットでのイベントのスケジューリング、以前の入力に応じてフォームの特定の部分の変更など、フォームに大量の構造化データが含まれる場合、特定のフォームを複数のページに分割します。
これは、動的な Web ページと Javascript で簡単に実行できます。異なるページを持つタブ ウィジェットを作成するだけで、実際に送信されたフォームにはタブ ウィジェット全体とそのすべての入力フィールドが含まれ、POST
操作全体に対する単一の要求が生成されます。 .
ただし、特定の入力フィールドを生成するのに時間がかかる場合があります。ページが生成された後でも計算負荷が高くなり、ローエンドのコンピューター ユーザーのブラウザーに負担がかかることさえあります。さらに、以前の入力に基づいて適応するフォームを作成することが困難または不可能になります。
したがって、特定のフォームを複数のフル ページ リクエストに分割する必要があります。
特に、フォームの最初のページがにリダイレクトされ、クライアントから要求されるPOST
ため、これは難しいことがわかります。保存されたフォーム データを からに渡すのが難しいところです。/location/a
/location/b
GET
POST /location/a
GET /location/b
Spring Web Flow (主に依存性注入機能で知られる Spring フレームワークのサブプロジェクト) の作成者である Erwin Vervaet は、かつて、このフレームワークでのこの機能を示すブログ記事を書き、同様の機能を実装した Lift Web フレームワークと比較しました。. その後、彼は他の Web フレームワークへの挑戦を提示します。これについては、後の記事で詳しく説明します。
特にステートレスな REST ベースの性質を考えると、Yesod はこの問題にどのように直面するのでしょうか?