2

私が StackOverflow で見た MVC アーキテクチャに関する投稿のほとんどで、モデルはビューからではなく、コントローラーからのみ通信する必要があると述べていました。

これについては少し混乱しています。なぜなら、MVC を Google で検索する場合: - http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller - http://i.msdn. microsoft.com/dynimg/IC108622.gif グラフィックは、ビューからモデルへの直接の通信があることを示しているようです。

これについて私が疑問に思っている特定のアプリケーションは、ここhttp://kotowicz.net/jquery-option-tree/demo/demo.htmlのような Ajax/jQuery 階層選択ボックスです。各選択の後、モデルから次のボックスのデータを取得することを考えていました。Codeigniter フレームワークを使用しています。

ここでのベストプラクティスに関する専門知識の直後。

4

2 に答える 2

2

XHR 中心のアプリケーションがある場合、MVC の 2 つのトライアドを実際に使用することは理にかなっています。1 つはフロントエンド用、もう 1 つはバックエンド用です。フロントエンドは、バックエンド MVC を単なるデータ ソースとして扱います (バックエンドのモデル レイヤーのデータ抽象化構造がデータベース、キャッシュ、およびその他の形式のストレージを扱うのと同じように)。

基本的に、「ajax アプリケーション」はviewではありません。それは完全に実現されたアプリケーションでなければなりません。もちろん、XHR を利用した大規模なアプリケーションを実際に作成している場合は、これを行う意味があります。

通常、ブラウザに表示されるのはビューではありません。ビューが作成したのは単なる応答です。Web のコンテキストでは、MVC アプリケーションのユーザーは web-browser です


ここに画像の説明を入力 出典:ウィキペディア

上の図は、従来のMVCと Model2 MVC (「Web MVC」とも呼ばれます)における情報の流れを簡略化したものです。それらの違いは、Web の性質によるものです。ユーザーが入力を送信するたびに、応答を受け取ることが期待されます。これは、タイミングについてあいまいさがないことを意味します。MVC トライアドのすべての部分は、応答が送信されるまでのみ存在します。ビューがモデル層を観察するポイントはありません。

Web アプリケーションのビューは実際にはインスタンスであり、すべての UI ロジックを含み、ブラウザーへの応答の送信を担当します。作成される応答は、HTML (複数のテンプレートを組み合わせて作成)、JSON、または XML ファイルのいずれかです。または、HTTP ロケーション ヘッダーだけかもしれません。

PSこの回答があなたの研究に関連していると思うかもしれません。

于 2012-10-31T22:25:52.100 に答える
0

2 番目のリンクの画像は間違っていると思います。正しい方法は、モデルとのコントローラー通信であるべきだからです。ビューがモデルと直接通信している場合は、html コードが php arge 文と混在していることを意味し、それは間違いです。

于 2012-11-01T04:21:05.987 に答える